)]}'
{
  "log": [
    {
      "commit": "db43b34c3428e480f8c4c66e7e88f4001f37f91e",
      "tree": "be194bf06c84b61f277a1c29c7499aa7862494a4",
      "parents": [
        "1df2557ac95a6d8a087fb15f6f842dc049f2759b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 04 14:47:28 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 13:18:22 2014 -0700"
      },
      "message": "media: 64 bit compile issues\n\n- change internal sized types to use stdint.h\n- printf \u0026 scanf formats\n- size_t or unsigned int for iterators\n\nChange-Id: Id993a70d8bf54c667c5d652b34179a2c727ed446\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "c4689fae1bdb8d1c94eb28af1b2a1f30d2b1a3da",
      "tree": "671c1ad1ba63040c35961f4b13db515edb1d0dd4",
      "parents": [
        "0a684cc5346e7d95acd3c3c0582c2b0161815fb0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 08 13:51:46 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 08 16:08:33 2012 -0800"
      },
      "message": "Move away from MediaDebug and use ADebug instead\n\nChange-Id: I307b3f565808ec8e3b9a4d944c6c0d1f603b04c9\n"
    },
    {
      "commit": "0a684cc5346e7d95acd3c3c0582c2b0161815fb0",
      "tree": "a5d05bf14a7f1e04c7e14038c42be2e69c3c051c",
      "parents": [
        "8c31ae07a170746f408445b1c23937f14c19ec51"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Feb 05 10:21:00 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 06 11:32:48 2012 -0800"
      },
      "message": "Removed unnecessary memset before an immediate memcpy\n\nChange-Id: I447057f861bb6b7977de48a598fd5bed7e75460b\n"
    },
    {
      "commit": "3d2d40ac83acbda8c161cae675c372595efd640e",
      "tree": "5dfe24a7eaa228e59bff8e0258c121fffa28aaa5",
      "parents": [
        "2985773cff8a4984ede9985cf4aad9ce655ffd45"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jan 27 19:01:13 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jan 30 12:13:24 2012 -0800"
      },
      "message": "Clean up VideoEditorPreviewController class part one:\n\no moved local types inside the class to avoid external exposure\no use non-virtual destructor since it is not meant to be a base class\no removed unused header files and moved some of the header files to .cpp file from .h file\no replaced #define constants with local enums\n\nChange-Id: Ib321fc8c0379955083bc892c2ef93ed58c6c2ff5\n"
    },
    {
      "commit": "3bd45591402b94ed4481ea0ee0a9140840979c84",
      "tree": "eadf2f63beb3705f954ceedc3ec34b6b7f0147b2",
      "parents": [
        "5ddfbe7a9c530f70582dc788c9b198d892be3950"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jan 20 19:28:01 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 26 19:30:33 2012 -0800"
      },
      "message": "Clean up VideoEditorGBAudioProcessing\n\no added #ifndef/#define in the header\no removed unused variables\no renamed some types and methods\no replaced macro with class private enum\n\nChange-Id: I588ef062fcadcd11591a5a55b4aed771c724492f\n"
    },
    {
      "commit": "727f9e1e8e1306af761765e480ac5499224db646",
      "tree": "8d743d4a1d1c29bf3f3eebb41072bba0419e6b0b",
      "parents": [
        "6f9028e5fd2f4dae3068c07bcb5221c5e7c515fa"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jan 20 13:09:13 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jan 20 18:52:27 2012 -0800"
      },
      "message": "AudioPlayerBase and VideoEditorAudioPlayer class design is incorrect.\n\no this patch removed the AudioPlayerBase class.\no verified and passed functional tests\n\nChange-Id: I33727069ef63136979b954a9dee1c35309ef6dd4\n"
    },
    {
      "commit": "6f9028e5fd2f4dae3068c07bcb5221c5e7c515fa",
      "tree": "a4fc58887ff6d36376ae46ccbf93a0269ddc6799",
      "parents": [
        "ed6269fd78eb57dce865279f4b777a9dd096cdcc",
        "00f742c087d92e5452d29be1fb668022b5f8a6c7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jan 20 09:33:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 09:33:29 2012 -0800"
      },
      "message": "Merge \"More source code Clean up in video editor engine\""
    },
    {
      "commit": "ed6269fd78eb57dce865279f4b777a9dd096cdcc",
      "tree": "1b7c2c3cf71172ca15999dd116ec301cfd7c8bd4",
      "parents": [
        "7a4097cc526fc25a36e0f451613340a9444ca043"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 19 18:40:59 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 19 18:47:30 2012 -0800"
      },
      "message": "Don\u0027t allow evil constructors in VideoEditorBGAudioProcessing\n\nChange-Id: Ic525ed66308681ec62363bc90ed2cea42c165a2b\n"
    },
    {
      "commit": "00f742c087d92e5452d29be1fb668022b5f8a6c7",
      "tree": "dc3de13666176b2d17655b8719af93f5b3197252",
      "parents": [
        "7a4097cc526fc25a36e0f451613340a9444ca043"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jan 13 17:34:42 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 19 17:29:53 2012 -0800"
      },
      "message": "More source code Clean up in video editor engine\n\no fixed incorrect design and got rid of PreviewPlayerBase class\no removed obsolete/unused code as much as possible and reformatted the source code\no verified and passed functional tests\no More to come ...\n\nChange-Id: I7a89162f8b9d9ea6eabcf0457366cd2f6d970d11\n"
    },
    {
      "commit": "7a4097cc526fc25a36e0f451613340a9444ca043",
      "tree": "1bcc849215e22b454dcf934a781fa8f079086479",
      "parents": [
        "4a108948e915b5c758cada106c129f56532ccf35"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 17 14:23:29 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 17 14:50:30 2012 -0800"
      },
      "message": "Fix two typos in the defined frequency enums\n\nChange-Id: Ia0b6af98bd8f2ccb4d79705064a225e5f699ed8d\n"
    },
    {
      "commit": "4a108948e915b5c758cada106c129f56532ccf35",
      "tree": "1d4598805ba72409919720634c5543b19fa65459",
      "parents": [
        "daeb5b33861147fda0096f9c794be6f341d884c2",
        "813c1017a499d5fe7a9ee7f40aae845954a3ba55"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 07:25:59 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 07:25:59 2012 -0800"
      },
      "message": "Merge \"Use audio_stream_type_t consistently\""
    },
    {
      "commit": "813c1017a499d5fe7a9ee7f40aae845954a3ba55",
      "tree": "6ed3607c23f07ef215e2902b3cb2850855b11b5c",
      "parents": [
        "8dcbd11c186e26b67de813adaec66dd578415cd7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 09 11:16:58 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 12 16:52:52 2012 -0800"
      },
      "message": "Use audio_stream_type_t consistently\n\nChange-Id: I0b3ba8ab74f03433d1e64cb898fa62c02535a2f1\n"
    },
    {
      "commit": "daeb5b33861147fda0096f9c794be6f341d884c2",
      "tree": "434128fd7151191d8718a57da09d3b019e874915",
      "parents": [
        "8dcbd11c186e26b67de813adaec66dd578415cd7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 12 12:12:40 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 12 15:53:01 2012 -0800"
      },
      "message": "Remove streaming related logic from preview player.\n\nVideo editor engine only deals with local file playback/preview.\n\nChange-Id: I8e3414abf8a109a77a1e34a959fb4a090612ae3d\nrelated-to-bug: 5857057\n"
    },
    {
      "commit": "8dcbd11c186e26b67de813adaec66dd578415cd7",
      "tree": "f7e1a89f6fa2ae4d5632d303fcdd54ef2d1c4671",
      "parents": [
        "c0f8fbe3ded614201abac794c34669c8a9fdb696"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 04 09:30:49 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 12 10:31:55 2012 -0800"
      },
      "message": "Use audio_format_t consistently\n\nChange-Id: Idb08c49fe1a2c87ea2bb080815a5a6f95409834c\n"
    },
    {
      "commit": "c0f8fbe3ded614201abac794c34669c8a9fdb696",
      "tree": "cb98f63f2e75b99424bf3e863ddbe10a107a999c",
      "parents": [
        "f8bd29c66308c820d579b3efb0942a53a277e2c5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 11 19:11:31 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 11 19:23:18 2012 -0800"
      },
      "message": "Remove unnecessary drm handling logic in PreviewPlayerBase class\n\nChange-Id: I08b1e23ecf5775deb92a262fb9ed60a464fe60c0\nrelated-to-bug: 5857208\n"
    },
    {
      "commit": "f8bd29c66308c820d579b3efb0942a53a277e2c5",
      "tree": "83b386db49c12a6ba562c1fec76e08c334cff929",
      "parents": [
        "e70ff37034fdb93f65d34704aec400ec9123e55c"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 10:14:44 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 10:14:44 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: I5c54a0185527f6ca3e746d625a007aa06f6f25f9\n"
    },
    {
      "commit": "e70ff37034fdb93f65d34704aec400ec9123e55c",
      "tree": "86126a3cbaf89654ea427daac9a9822decba34a2",
      "parents": [
        "ec9e663f697df4254dacc79f52cdb633179c92ab"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:50 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:50 2012 +0000"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/157065\n\nBug: 5449033\nChange-Id: I605079da4a7c01e6555e2aab6f16ccf8cc6ac694\n"
    },
    {
      "commit": "ec9e663f697df4254dacc79f52cdb633179c92ab",
      "tree": "b5a80447fbe0093a1acac8c9a9357949b7958747",
      "parents": [
        "4ca06b0a9af472cfd13f52841fc9d2e5a6558674"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:06:05 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:06:05 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: I261ad4d5348f4832488707edeb3cbdbb6dd12fca\n"
    },
    {
      "commit": "4ca06b0a9af472cfd13f52841fc9d2e5a6558674",
      "tree": "59b24b82e4faee8a6575c6eecaaed4e76c885d39",
      "parents": [
        "2736f1cb9aed4165819d21f2f3d35782dd811d26"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:24:14 2011 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 03 22:31:06 2012 +0000"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I17166d9fb435c85c5fd9d5fba1a39d2661c61e10\n"
    },
    {
      "commit": "7bdbbc7e45fca8e50df91ef2e8b39d1608841c9d",
      "tree": "84b091a5632d4f47a724042ea5cfc1cc757dc2f2",
      "parents": [
        "467a3f3ea4830b4f4d9cb5b68f2f6ee638648801"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 16 11:07:44 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 16 11:40:27 2011 -0800"
      },
      "message": "ditherAndClamp from libaudioutils not AudioMixer\n\nChange-Id: I1e8a00c81efefd956fe9e4d9b58557373320e322\n"
    },
    {
      "commit": "83a4cc4e3a404a02fa4af496ff48ee51581fb098",
      "tree": "b4c33f0ec38521c31bb0e75ea3364ac05a665419",
      "parents": [
        "3b8c0478e92f0c52a3bb2eca2d34effd04cf61e7",
        "482cedda9164b9f376dbe47644e33eb07db5b996"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Wed Nov 16 11:39:05 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Wed Nov 16 11:39:05 2011 +0800"
      },
      "message": "resolved conflicts for merge of fbb122bf to master\n\nChange-Id: I607e6b11e925ba858d2a0856117e2fcb68bed963\n"
    },
    {
      "commit": "2db767137112a619751b70b9947aaa064030a210",
      "tree": "f2dd3c3d99a3e9fc87dc4bbdb57933829657d04c",
      "parents": [
        "e20c2c1775349da6d4a5700f0c7faaa07d62f409"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Nov 15 19:47:25 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Nov 15 19:47:53 2011 +0800"
      },
      "message": "Fix 5607624: Native crash in movie studio while previewing the movie\n\nChange-Id: I6bc123a3da4fb071a65fe776bcba0268fa58bf29\n"
    },
    {
      "commit": "2703f23af496c13cfa39cc7e157fa12d1cb4c169",
      "tree": "e6ef5f3d8965bcbb43ea303bf422b53be2e86cf5",
      "parents": [
        "e20c2c1775349da6d4a5700f0c7faaa07d62f409"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:09 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Oct 25 18:16:03 2011 +0100"
      },
      "message": "Rename LOGV(_IF) to ALOGV(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/143865\n\nBug: 5449033\nChange-Id: I366680b6e614b8983d1def28cc2fdbfa98f39531\n"
    },
    {
      "commit": "4a4a8f0143c7ac17f88e73f76e21c6d8b63d6e20",
      "tree": "2627dcf67aae577ab0398e0bccca441176071d2a",
      "parents": [
        "2534acb86e3f9ea94ed989f778f2606b79536fbc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 12 15:08:42 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 12 15:08:42 2011 -0700"
      },
      "message": "Remove RTSP support from libvideoeditor\u0027s PreviewPlayer...\n\nChange-Id: I2032772037c1130736081cb62bd6ce8d1270e1b9\n"
    },
    {
      "commit": "e018023b4844fef7880bf5e45f706afcb10c33b6",
      "tree": "2246eff8d52a8d7333e86b06eee5b3016d94805c",
      "parents": [
        "e62c387164f176b2f2484fe3bd84d8dc115b5d6b"
      ],
      "author": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Wed Sep 28 18:40:38 2011 -0700"
      },
      "committer": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Wed Oct 05 11:06:16 2011 -0700"
      },
      "message": "Fix for 5369981 Native crash : testPreviewWithEndAudioTrack functional test.\n\nChange-Id: Icb8cadaff50a22588417c2c8f5c31415dd0cca9e\n"
    },
    {
      "commit": "d94b927cafef95db7de0c89b6ef8f246efc37c6c",
      "tree": "189bb51868ed3743e70a1267437552828879fb4c",
      "parents": [
        "e02eee1a408656be9beaf1b0ba656dd1ee103799"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Sep 05 14:49:35 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Sep 05 14:49:35 2011 +0800"
      },
      "message": "Enable some logs to debug 5195693.\n\nChange-Id: I1c71b6fa6b8dbcbf2a6685be5f24afddab4afc5d\n"
    },
    {
      "commit": "e9eec0e0975c57c0dac91eb5b4cbb052b7dd011a",
      "tree": "a0149c5899128a58ddd146620f566371c365b049",
      "parents": [
        "dac2f050b814bd72ff66b4ae58634c25fb2185ff"
      ],
      "author": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Tue Aug 30 12:59:30 2011 -0700"
      },
      "committer": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Tue Aug 30 12:59:30 2011 -0700"
      },
      "message": "Fix for 5156702 Rotate video output for thumbnails and export\n\nThis is part of a multi project submit.\nThis is the native engine part.\n\nChange-Id: Icde922194a123a90544942caa12430fc3c4ef10e\n"
    },
    {
      "commit": "a007d502e7572b225124eea31defbd27b59d4161",
      "tree": "42028f700b5faa622f56e0bdf7def9dbd164b16a",
      "parents": [
        "5f9cd08076587935f798b2b2eba4aa202362f532",
        "3d974e7763495d8fda6f264810619cb3bd265293"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Sun Aug 28 21:57:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 28 21:57:59 2011 -0700"
      },
      "message": "Merge \"Fix 5123908: Native crash rewinding movie\""
    },
    {
      "commit": "aef59c544429aae73429a1325d43e830600e3b67",
      "tree": "f9e67ba30ddf84e24d2adb166c2820d98e7a2882",
      "parents": [
        "16ecf765405a22118e9d3bd2d3c22df374794dcf"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Aug 25 14:00:18 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Aug 25 14:03:28 2011 +0800"
      },
      "message": "Fix 5180429: Initialize native window transform to 0.\n\nChange-Id: I2730895059d408fa731dc4ca8da3f7984fe196ae\n"
    },
    {
      "commit": "3d974e7763495d8fda6f264810619cb3bd265293",
      "tree": "0992f6778a26e45862c8c7faea05dc93f59c8977",
      "parents": [
        "0a25bd5bacf5408ca205b15e53cfb6dc2fc1d171"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Aug 18 19:41:30 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Aug 23 16:28:40 2011 +0800"
      },
      "message": "Fix 5123908: Native crash rewinding movie\n\nSimplify the VideoEditorSRC code and fix some bugs.\n\nChange-Id: I6bcf3a5cea21a2eec4b51f167560c4b0d3a04a29\n"
    },
    {
      "commit": "08b82bddf54757ad6bd243181f1b68a79bb70e6d",
      "tree": "59ff1b5558c1f993f1249571e40f793c5b056d80",
      "parents": [
        "7b0a960ef4bdf5529070d575b98222f55433f243"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Aug 11 18:36:45 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Aug 11 20:22:22 2011 +0800"
      },
      "message": "Add connect calls for SurfaceTexture. Clean PreviewRenderer.\n\nNow connect() is necessary for SurfaceTexture.\nAlso cleaned unused code in PreviewRenderer.\n\nChange-Id: Ic49df01e79f38a48a8c2cf194d13ee575660c834\n"
    },
    {
      "commit": "2aa01fd002bba1dde45791c1138c1f71a8d0aa53",
      "tree": "dfa99a4f4d0a709a43a9b1b9cc83802c28f48f47",
      "parents": [
        "43fcc396614a587851e2b7c4cea2876ec58b8648"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Aug 05 17:52:45 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Aug 08 18:11:04 2011 +0800"
      },
      "message": "Rename YV12 to I420.\n\nChange-Id: I453b7044bf46950ef67091f3417ed3e6a65086a0\n"
    },
    {
      "commit": "43fcc396614a587851e2b7c4cea2876ec58b8648",
      "tree": "22a07a3df45003665acbb9c0a510f0ff02037f78",
      "parents": [
        "b9410c5dacdb44f2f19bc2487dd9ef84445e1f32"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Aug 02 16:17:39 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Aug 08 18:11:00 2011 +0800"
      },
      "message": "Use GL to render preview.\n\nTo speed up the preview, we direct the decoder output to a\nSurfaceTexture, then draw the texture to a surface. The media\nrendering parameters (crop, black-border) are implemented\nusing different vertex coordinates. The color effects are\nimplemented using fragment shaders. Currently only three color\neffects are implemented, but that\u0027s all the appplication uses.\n\nChange-Id: If84439fee572ed37ea077749ef9f2bd4f78703e1\n"
    },
    {
      "commit": "b9410c5dacdb44f2f19bc2487dd9ef84445e1f32",
      "tree": "1a5fdbf9ac37f099597d7dd9f72e8c338f173433",
      "parents": [
        "cece4b32d340f0ca514160647b9883e3777bc376",
        "48a29a976eb649f9c90e9d69214747d1aa659de1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 04 11:40:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 04 11:40:51 2011 -0700"
      },
      "message": "Merge \"Remove excessive logging\""
    },
    {
      "commit": "cece4b32d340f0ca514160647b9883e3777bc376",
      "tree": "0572c94638629694105646259fd2204e21d5ad36",
      "parents": [
        "e048e90967aa52e01b6b3ca445e4ade75c0dc878"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Aug 01 16:34:05 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Wed Aug 03 09:41:42 2011 +0800"
      },
      "message": "Remove unused mLastVideoBuffer and bAppliedVideoEffect.\n\nChange-Id: I29511aaa714494a1a6caa4ed95bbc26370b37246\n"
    },
    {
      "commit": "48a29a976eb649f9c90e9d69214747d1aa659de1",
      "tree": "849be7905f1b3837fd95a5a9ffa1b7091c05462e",
      "parents": [
        "2d461d443d4d0a35acb9cfd49cafad8941b17a0b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 02 10:35:09 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 02 10:35:09 2011 -0700"
      },
      "message": "Remove excessive logging\n\nChange-Id: Ie0b37da59ad326184c983626c45ea78908e7c2b7\nrelated-to-bug: 5109084\n"
    },
    {
      "commit": "e048e90967aa52e01b6b3ca445e4ade75c0dc878",
      "tree": "a45d41b8acb38e8570fa8fa2f5ca6598f7f14324",
      "parents": [
        "2d461d443d4d0a35acb9cfd49cafad8941b17a0b"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Aug 01 12:15:59 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Aug 02 19:34:13 2011 +0800"
      },
      "message": "Remove PreviewLocalRenderer (simplify the code).\n\nChange-Id: I1f04e591cd0a33eb70bd93d5600aba12e727386e\n"
    },
    {
      "commit": "7efb8efc88ba529c1c57366a305855c2051ebb8b",
      "tree": "4d13cead0028ee272f3c8267edbdd12b81ec1b23",
      "parents": [
        "abb85fd9090817686bbdaa5a5b29547728a8d385"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jul 22 09:01:36 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Wed Jul 27 09:36:51 2011 +0800"
      },
      "message": "Add YV12 color converter interface for VideoEditor.\n\nThe original assumption in VideoEditor is that the decoder output\nand encoder input are in YV12 format. However on different\nhardware platform the actual formats may be different. So now we\nload a platform-specific YV12 color conversion module which\nknows the actual format and can convert to/from YV12, which is\nthe format used in VideoEditor internally for processing.\n\nBug: 5061733\nChange-Id: I852f85efd30c05cf6c42810059ee4d2ef37ee3da\n"
    },
    {
      "commit": "0aaa69f88effc1c7d154c727d67d358100b53848",
      "tree": "da025864d79713bda4f0783fe7ab4ee75aed4ca0",
      "parents": [
        "9ea1fc71df220b6bf610587ed15b6e400a215da5",
        "8806b706693c0992724f6603353af18aeb4a0f80"
      ],
      "author": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Thu Jul 21 11:14:03 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 21 11:14:03 2011 -0700"
      },
      "message": "Merge \"fix for issue 4142219 Don\u0027t hard code platform-specific limitations engine part.\""
    }
  ],
  "next": "8806b706693c0992724f6603353af18aeb4a0f80"
}
