)]}'
{
  "log": [
    {
      "commit": "296fb13dd9b5e90d6a05cce897c3b1e7914a478a",
      "tree": "d3ed4e6ff2902da6f556d038c71605c091b75f64",
      "parents": [
        "32fa6d0e65dbf956e253a1006e9419dce2fe75c9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 11:38:42 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 10:14:42 2015 -0700"
      },
      "message": "Implement audio device callback\n\nAdd class AudioSystem::AudioDeviceCallback notifying\nAudioSystem clients upon device selection change on a given\ninput or output thread.\nMaintain a list of installed callback per I/O handle in AudioSystem\nand call registered callbacks when an OPEN of CONFIG_CHANGED event\nis received on IAudioFlingerClient::ioConfigChanged().\nAdd methods to AudioTrack and AudioRecord to add and remove device\nchange callbacks.\nAdd methods to AudioTrack and AudioRecord to query currently selected\ndevice.\nioConfigChanged() events now convey the audio patch describing\nthe input or output thread routing.\n\nFix AudioRecord failure to start when invalidation is\nhandled by start().\n\nChange-Id: I9e938adf025fa712337c63b1e02a8c18f2a20d39\n"
    },
    {
      "commit": "8651c6f5069cca40ef805b800a9730617ff7f9b8",
      "tree": "129d2b9634ed11d920253265e86b171033887b39",
      "parents": [
        "e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049",
        "1dcdfead2971c1fa7c02f24ba86f706890c9f99e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Sat May 02 02:23:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 02 02:23:07 2015 +0000"
      },
      "message": "Merge \"stagefright: add support for dynamically setting MediaCodec output surface\" into mnc-dev"
    },
    {
      "commit": "e2a2dfcbf0c9d6bb7139263ecf0d8e53b4ca1049",
      "tree": "8060421e6bb2732c1b84d0810f5e83a57a7d25ea",
      "parents": [
        "d291c222357303b9611cab89d0c3b047584ef377"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri May 01 12:36:13 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri May 01 19:18:49 2015 -0700"
      },
      "message": "MediaRecorder: implement persistent input surface APIs\n\nBug: 19127604\nBug: 19489395\n\nChange-Id: I7dd8015a8fe029f9867fcdb52322629c77eff50b\n"
    },
    {
      "commit": "d291c222357303b9611cab89d0c3b047584ef377",
      "tree": "953551d93d5a215cefb14470387ff7494c9b60e5",
      "parents": [
        "64da6f045b1a1d1b8f01391b6e37287f77f85d1e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 30 18:15:52 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri May 01 19:06:38 2015 -0700"
      },
      "message": "MediaCodec: implement persistent input surface APIs\n\nBug: 19127604\nBug: 19489395\n\nChange-Id: Idaf1cc9008016f66903e93907a676f54e342e1a3\n"
    },
    {
      "commit": "1dcdfead2971c1fa7c02f24ba86f706890c9f99e",
      "tree": "e07226a98400e308d1a82499fbdb76757603937c",
      "parents": [
        "64da6f045b1a1d1b8f01391b6e37287f77f85d1e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 30 13:59:10 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri May 01 18:45:35 2015 -0700"
      },
      "message": "stagefright: add support for dynamically setting MediaCodec output surface\n\nBug: 11990461\nChange-Id: I2aee89ef504234dc66eb5fcf6e62e1706088f758\n"
    },
    {
      "commit": "64da6f045b1a1d1b8f01391b6e37287f77f85d1e",
      "tree": "f0ff2afd1653e1f1705c1267389f4028118fb714",
      "parents": [
        "0247f0db93a828f0754a6d2d278cb08c6609cf26",
        "f06cc24ce7aeb5ff6f45b770a15286c95f8cc9ff"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Sat May 02 00:40:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 02 00:40:52 2015 +0000"
      },
      "message": "Merge \"stagefright: MediaCodec: rename mNativeWindow to mSurface\" into mnc-dev"
    },
    {
      "commit": "939270353bff5bc7497b0c77e203520b997268c9",
      "tree": "3138d9682c0449dfd2d66d46fa6a216bbf019b3f",
      "parents": [
        "cc85abcf4ac398dca240db356b8b4db052b415a4",
        "4c5a3675ed6b429dfaa2707acf2b3faf2808baf2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 01 21:49:38 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 21:49:39 2015 +0000"
      },
      "message": "Merge \"AudioTrack: reduce retrograde motion spew\" into mnc-dev"
    },
    {
      "commit": "cc85abcf4ac398dca240db356b8b4db052b415a4",
      "tree": "65f9eccab6b0d9b9f3dcee48e2c44326b0edbef4",
      "parents": [
        "0bbf8b213ad96051357e3ad6d6d2808bfa31a59a",
        "73e26b661af50be2c0a4ff6c9ac85f7347a8b235"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 19:10:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 19:10:26 2015 +0000"
      },
      "message": "Merge \"AudioSystem: refactor audio config cache and callbacks\" into mnc-dev"
    },
    {
      "commit": "73e26b661af50be2c0a4ff6c9ac85f7347a8b235",
      "tree": "7290cb83e5f7df830447fe2badf99c43e0afc020",
      "parents": [
        "054d9d3dea1390294650ac704acb4aa0a0731217"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 27 16:55:58 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 11:45:07 2015 -0700"
      },
      "message": "AudioSystem: refactor audio config cache and callbacks\n\nClean up implementation of audio configuration cache and\ncallback events from AudioFlinger:\n\n- Define class AudioIoDescriptor for audio input and output\nconfigurations outside of AudioSystem class.\n- Do not use void * but an AudioIoDescriptor as argument to\naudio config callbacks from AudioFlinger.\n- Remove unused configuration events.\n- Move AudioSystem audio input and output cache from static singletons to\nmembers of AudioFlingerClient subclass.\n\nChange-Id: I67c196c32c09ce2756af0755ee1fe631040c3270\n"
    },
    {
      "commit": "4c5a3675ed6b429dfaa2707acf2b3faf2808baf2",
      "tree": "b0697130f34c1957f26b84f74d00fb8455890fae",
      "parents": [
        "1de1e25cba872bd4c077c2e394f8ca9c70b65856"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 30 16:18:53 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 01 10:32:54 2015 -0700"
      },
      "message": "AudioTrack: reduce retrograde motion spew\n\nChange-Id: I96aced52b136ceea924aa3d9ef56374dd4c49784\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "f06cc24ce7aeb5ff6f45b770a15286c95f8cc9ff",
      "tree": "22ce17daecad35ec164ff03caec5e9b02396ef14",
      "parents": [
        "1de1e25cba872bd4c077c2e394f8ca9c70b65856"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 30 18:46:16 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri May 01 01:59:35 2015 +0000"
      },
      "message": "stagefright: MediaCodec: rename mNativeWindow to mSurface\n\nbecause mNativeWindow is of type sp\u003cSurface\u003e\n\nBug: 19489395\nChange-Id: I5ddc78b04e387915a2293b71195d7a6494986356\n"
    },
    {
      "commit": "1de1e25cba872bd4c077c2e394f8ca9c70b65856",
      "tree": "7f01e01b5a3731a9c345684e38755d97e6a67f19",
      "parents": [
        "31de88566257d5546cf4eee9064d96926a4b0c24"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 30 18:18:34 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 30 18:53:52 2015 -0700"
      },
      "message": "stagefright: remove NativeWindowWrapper\n\nNow that Surface and SurfaceTextureClient are the same and Surface,\nit does not add value.\n\nBug: 19489395\nChange-Id: I016ecd1cf5cc51ce6244b6fa34ecd75f84e3db01\n"
    },
    {
      "commit": "3a474aa67fc31505740526dd249d96204c08bf79",
      "tree": "4db784ee57ffad037fa2ded86d0fd8b3a40173d5",
      "parents": [
        "a8df0b716bdfda1e10790e6f7297eeff83d2e52a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 24 17:10:07 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 30 16:56:10 2015 -0700"
      },
      "message": "stagefright: support setting/getting playback/sync config in MediaSync\n\nBug: 18249558\nBug: 19666434\nBug: 20057497\nChange-Id: I5868b17423d7c20cfaf4a399f3eb67bfba440605\n"
    },
    {
      "commit": "457e82586d51c6d360ce4feb4c1dff1a31dcb8d3",
      "tree": "6b64f269ba9d971077ab26c3112d5e90a80f2fb7",
      "parents": [
        "dc0ac804721efff054ec9720d53e93ecca86cf5e",
        "bac588208fadec78e3fa205c238089df277d3817"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 30 21:14:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 21:14:54 2015 +0000"
      },
      "message": "Merge \"MediaSync: map returned output buffers to previously received input buffers.\" into mnc-dev"
    },
    {
      "commit": "dc0ac804721efff054ec9720d53e93ecca86cf5e",
      "tree": "8560f730cb37dddfccc6ea2a513d99889998e2c2",
      "parents": [
        "5f9bf49397b36ad4ebd838aef66b83e9e9fa42bc",
        "1b42097f38e72574ed853a35f4e8a66e4739c421"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 30 20:48:54 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 20:48:55 2015 +0000"
      },
      "message": "Merge \"AudioTrack: fix spurious retrograde messages\" into mnc-dev"
    },
    {
      "commit": "5f9bf49397b36ad4ebd838aef66b83e9e9fa42bc",
      "tree": "f69b635690cbc2cff9e5cfb8843e4473cc327208",
      "parents": [
        "1471e7a112aed5ff120c2b97bced9523ed39fe6c",
        "8c7e6dac6f5eb38cef627dab92eac8b38513450c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 19:50:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 19:50:55 2015 +0000"
      },
      "message": "Merge \"audio policy: session routes continued.\" into mnc-dev"
    },
    {
      "commit": "8c7e6dac6f5eb38cef627dab92eac8b38513450c",
      "tree": "6aede3a6ac013462a117ffb181d93439525eebeb",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 21 17:37:00 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 12:43:06 2015 -0700"
      },
      "message": "audio policy: session routes continued.\n\n- Clear session routes when client process dies.\n- Enforce the route only when the requesting session is active.\n- Fix requested route not working if an output mix change is required\n(e.g forcing to SPEAKER when the default route is USB or A2DP).\n- Make sure all sessions sharing the strategy with a rerouted session\nhave the same route (needed for volume control consistency)\n\nChange-Id: I0ab347a8fb97e73e2c5965374544c5f4fe509ef1\n"
    },
    {
      "commit": "bac588208fadec78e3fa205c238089df277d3817",
      "tree": "3feebbd56bf126f282d96583f2a60f17fdfabdfe",
      "parents": [
        "c0239eca6d022b498d21cc467f83f715f7e7ed89"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Apr 28 18:22:36 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 30 09:53:14 2015 -0700"
      },
      "message": "MediaSync: map returned output buffers to previously received input buffers.\n\nBug: 19666434\nChange-Id: I81e9cb8e73d950b3be5d29cf010c6793894ad802\n"
    },
    {
      "commit": "d641af3e9faf6c053ccbeea1bc20790021e57a11",
      "tree": "f2c1fa01f2321024396ac4bda949d74965a547f9",
      "parents": [
        "d707ac5a0494398cb1306ead0ba587034f610f30",
        "f613d42b12389335b2ecf06df18d0d095d6bfd44"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 30 16:43:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 16:43:21 2015 +0000"
      },
      "message": "Merge \"AudioSystem callback for dynamic policy mix activity\" into mnc-dev"
    },
    {
      "commit": "f613d42b12389335b2ecf06df18d0d095d6bfd44",
      "tree": "b36177007932b781d9db2bb973cb2feaab3cde13",
      "parents": [
        "dae24729d0b3ced8c4a7d7f9b631e852f564db4f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 23 18:41:29 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 29 17:54:12 2015 -0700"
      },
      "message": "AudioSystem callback for dynamic policy mix activity\n\nAdd method to AudioPolicyServiceClient for dynamic policy mix\n activity notification.\nPropagate notification to a dedicated callback.\n\nBug 20226914\n\nChange-Id: I37928ed38e15ea2b8fed022cccadeca8c4d6c876\n"
    },
    {
      "commit": "1b42097f38e72574ed853a35f4e8a66e4739c421",
      "tree": "e708293755e42bca48d47380b8b8568cfc3d2f1f",
      "parents": [
        "5f88cdae61079be7920aee166eaac4941f65fb9f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 22 10:52:21 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 29 23:36:01 2015 +0000"
      },
      "message": "AudioTrack: fix spurious retrograde messages\n\nThe retrograde motion was confused by some positions coming from\nthe DSP on offloaded tracks. So the retrograde check was moved up\ninto AudioTrack.cpp. This allows us to take advantage of the checks\nfor invalid positions based on timing.\n\nBug: 2047891\nChange-Id: Ifcad2349201443a7f1711347c203297100449536\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "be71aa29a3c86d2e01cd17839d2a72ab09a1bce5",
      "tree": "ca29cd10f78ff053761eb809c391019180836742",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 28 12:06:02 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 29 19:06:41 2015 +0000"
      },
      "message": "Respect the record audio app op - media\n\nChange-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b\n"
    },
    {
      "commit": "466dc8ed6ca6b7f585104806c48613dd34e608c9",
      "tree": "086bbd91d48e366377c02df8a65a5e2bad8675a6",
      "parents": [
        "dae24729d0b3ced8c4a7d7f9b631e852f564db4f"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Apr 17 13:15:36 2015 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Apr 28 10:46:14 2015 -0600"
      },
      "message": "Explicit routing in AudioRecord\n\nChange-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5\n"
    },
    {
      "commit": "4275065e89b121fd2f9bd4e0440577348d5ce663",
      "tree": "79c39316a30e8c413a5c614eaaa157f710a650fb",
      "parents": [
        "c721e71f4d7e3cd4fc9332fd55fb6942f54cec39",
        "8db8813d39e3c8b5fbd580dfc3062830744afd63"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 27 22:55:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 27 22:55:38 2015 +0000"
      },
      "message": "Merge \"DO NOT MERGE libmediaplayerservice: set priority and operating rate for the codec used by nuplayer.\" into mnc-dev"
    },
    {
      "commit": "c721e71f4d7e3cd4fc9332fd55fb6942f54cec39",
      "tree": "d6dbd9af50ecfb1f8b9f0f1ecf3033920008ca8a",
      "parents": [
        "5e95559255d1abd62c78b308731ebe3991186e94"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Apr 24 15:29:49 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 27 21:22:13 2015 +0000"
      },
      "message": "DO NOT MERGE libmedia: add sub resource type audio-codec and video-codec.\n\nBug: 20559813\nChange-Id: If231cb44337ca7dc74c39fc3cd73e2b6f3cb85b8\n(cherry picked from commit d4c1f6b4ecfef7323422359fc38bd1edb1abf205)\n"
    },
    {
      "commit": "8db8813d39e3c8b5fbd580dfc3062830744afd63",
      "tree": "e2573de1c55ee05a5c075153835cebaeadecb4eb",
      "parents": [
        "5e95559255d1abd62c78b308731ebe3991186e94"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Apr 22 13:51:35 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 27 21:20:31 2015 +0000"
      },
      "message": "DO NOT MERGE libmediaplayerservice: set priority and operating rate for the codec used by nuplayer.\n\nBug: 20481562\nChange-Id: I9806414962352fbcda726f8274f1cd348c961de0\n(cherry picked from commit f19f5d716b39a5d9dc1abdcd5a16a7aaf1b1ab8b)\n"
    },
    {
      "commit": "21db57282da8b3daba1549f3a8e41c4fbaf80059",
      "tree": "2c51b5f8ffe7015ffdc3fdaf19bd36982546bf89",
      "parents": [
        "7d7ea036436320b03bef826d78c4c035b67edbd0",
        "8f9dd872366f54b6260506c75c3d0cc3f9f73f81"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Apr 24 21:35:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 21:35:38 2015 +0000"
      },
      "message": "Merge \"mediaresourcemanager: add dumpsys support.\""
    },
    {
      "commit": "a739165147bd58f7396d605fed1dfa8b68aaf6a8",
      "tree": "1a4eedd42858a27613f2a28d257357ae017e0f6c",
      "parents": [
        "e2e2cb08acf267b5151e61cda261cdda25afac38",
        "f8bd851cc652501239a8e3759b21890dfa2afdea"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Apr 24 15:33:13 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 15:33:14 2015 +0000"
      },
      "message": "Merge \"Copy sei offset/size during ABuffer/MediaBuffer conversion\""
    },
    {
      "commit": "f8bd851cc652501239a8e3759b21890dfa2afdea",
      "tree": "895659041fb0a778e00999b056d79395ad617fcf",
      "parents": [
        "38ad9c7d19a0699065b078a0e8dd7ece3d055bf7"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 23 16:39:18 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 23 18:22:24 2015 -0700"
      },
      "message": "Copy sei offset/size during ABuffer/MediaBuffer conversion\n\nBug: 20537676\nChange-Id: I0bd11527ccd022c39d94b7877df81de4da1b14a6\n"
    },
    {
      "commit": "8f9dd872366f54b6260506c75c3d0cc3f9f73f81",
      "tree": "6b20eb7ca59c4c40936e27806f5d76bce005b146",
      "parents": [
        "1ac91ed2c67245ea5052182212463d3f0afe8b5a"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 23 15:24:25 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 23 18:03:30 2015 -0700"
      },
      "message": "mediaresourcemanager: add dumpsys support.\n\nBug: 20233206\nChange-Id: Ic253985e408b05b488e87cd5c50c0d619ac568ef\n"
    },
    {
      "commit": "99d1f78c9b16b5668e78c353373e0e7f4592cab9",
      "tree": "8970f2f018cc0829ee78c4ed5461c39c8f9a1775",
      "parents": [
        "1ac91ed2c67245ea5052182212463d3f0afe8b5a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 23 14:06:42 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 23 16:08:06 2015 -0700"
      },
      "message": "MediaSync: allow users to query play time for pending audio frames.\n\nBug: 19666434\nChange-Id: I5cfd3e1a9b4f56aaa6482facd55a22ed1e7ed3e6\n"
    },
    {
      "commit": "5a8a95de6dad1a3bcf3da5a37b35766e89086e13",
      "tree": "64b82016eaef26f51b75470714172c06287c9c56",
      "parents": [
        "ea44f41bb142555e747cc11382296e94af99d312"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Sat Apr 18 14:47:04 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Apr 22 10:57:24 2015 -0700"
      },
      "message": "Use AudioPlaybackRate to hold TimestretchBufferProvider parameters\n\nUse this struct to handle the parameters for TimestretchBufferProvider all\nacross the system.\nAdd stretch mode and fallback mode to TimestretchBuffer Provider.\n\nChange-Id: I19099924a7003c62e48bb6ead56c785cb129fba2\n"
    },
    {
      "commit": "7184bab920699d49718e8fc3cf8a23d3c9d8d54a",
      "tree": "06913515dd08a743e9e092171c91666f011cee18",
      "parents": [
        "5030647ab3860575312532655ccf2ea3cc96088f",
        "978449984366946a2e5c9f7cf350746f4306caf8"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Apr 18 00:20:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 18 00:20:11 2015 +0000"
      },
      "message": "Merge \"HLS: reduce number of guessed wrong seq numbers\""
    },
    {
      "commit": "6d339f1f764bbd32e3381dae7bfa7c6c575bb493",
      "tree": "3b29d455c9f3ac73327a0117d2bc18d8b199a265",
      "parents": [
        "ee4e1b1a63758941460ae79a064249d3a5189443"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 16:15:53 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 16:16:27 2015 -0700"
      },
      "message": "libmediaplayerservice: fix warnings, make warnings errors, use clang\n\nChange-Id: I1b2f6b65c5abbc366068a60b8909104f31b94228\n"
    },
    {
      "commit": "978449984366946a2e5c9f7cf350746f4306caf8",
      "tree": "21d406ec763c97554a5db234b49807ecb7a659b2",
      "parents": [
        "2170233c49e50f3986cdc4f726016d6003cb5b8e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sun Apr 12 01:03:51 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 17 14:26:32 2015 -0700"
      },
      "message": "HLS: reduce number of guessed wrong seq numbers\n\n- account for playlist age in live streaming when calculating\n  segment time\n\n- be more conservative on downswitching if bandwidth is unstable\n\n- adjust forward or backward if guessed wrong seq number\n\n- code refactor\n\nbug: 19567254\n\nChange-Id: I0b61cea888fdffd1b3ee2446747ed10152e9e7d7\n"
    },
    {
      "commit": "ee4e1b1a63758941460ae79a064249d3a5189443",
      "tree": "d27f03a73170da9cce96b6eae5b2ecd874eace22",
      "parents": [
        "2170233c49e50f3986cdc4f726016d6003cb5b8e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 13:46:19 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 13:46:43 2015 -0700"
      },
      "message": "stagefright: warnings be gone, some are now errors, use clang\n\nChange-Id: I81f438ae444f04c12ae27ae4ef6d073033de172c\n"
    },
    {
      "commit": "0852843d304006e3ab333081fddda13b07193de8",
      "tree": "f60be26aad988e89bc135a86f6e4ae8853c69a49",
      "parents": [
        "3d66eb4128aebef31bb0fa44c4d53d6122294a26"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Apr 08 09:06:54 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 16 19:01:15 2015 -0700"
      },
      "message": "stagefright: initial timed id3 support in hls\n\nChange-Id: I00a8a786b3f4b74742c34770edd94e937abe20a8\n"
    },
    {
      "commit": "3d66eb4128aebef31bb0fa44c4d53d6122294a26",
      "tree": "b532ebd2b434a9f6f90039bdb46f775fbe2ebefe",
      "parents": [
        "71933d769c54dadb5d8618ccb1ae69a3926f890b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 16 12:44:11 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 16 13:58:38 2015 -0700"
      },
      "message": "MediaCodec: hold input buffers during FLUSHED state\n\nbug: 20267388\nChange-Id: I21a12cb2ebb74e17dcdb7b502c3f674e9e64b5dc\n"
    },
    {
      "commit": "c224ec53a17994fa97ab2f29304647c9f195c51c",
      "tree": "6086a1cf5720b82e7dc25b7ecd60af39d66c738d",
      "parents": [
        "f2326ac96366ec4d05f470cc4a0b407e7805bab7",
        "99f31604136d66ae10e20669fb6b5716f342bde0"
      ],
      "author": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Thu Apr 16 17:06:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 16 17:06:42 2015 +0000"
      },
      "message": "Merge \"Unhide the android.media.[Media]DataSource interface.\""
    },
    {
      "commit": "99f31604136d66ae10e20669fb6b5716f342bde0",
      "tree": "20e64f4f26533b37b087ce8656b1040b8189e24f",
      "parents": [
        "2f33dbc6ca08d45efea2df775c158e2a11e07ab6"
      ],
      "author": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Fri Mar 20 13:06:33 2015 -0700"
      },
      "committer": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Wed Apr 15 17:12:22 2015 -0700"
      },
      "message": "Unhide the android.media.[Media]DataSource interface.\n\nThis allows apps to implement MediaDataSource, which is modeled on\nstagefright\u0027s DataSource, to supply media data to the framework. This\nwas already implemented for MediaExtractor, but it was renamed from\nDataSource.\n\nMediaExtractor, MediaPlayer and MediaMetadataRetriever each have a new\noverload: #setDataSource(android.media.MediaDataSource)\n\nOnly NuPlayer supports this new data source.\n\nThe change introduces:\n * IDataSource:        The binder interface for DataSource.\n * JMediaDataSource:   The native counterpart to the java interface. It\n                       implements IDataSource.\n * CallbackDataSource: A stagefright DataSource that wraps an\n                       IDataSource.\n\nChange-Id: Ib3c944b49cc8a792c8eb9c85e5015c07f298ebc1\n"
    },
    {
      "commit": "554a277d4e42a3d3df3d90ba0e7dfa2d31690e32",
      "tree": "3647500470a7eca8095102a0e2818acb848cdf6a",
      "parents": [
        "3249558196082087fb8bd0a847ef5c6000c8b925"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 11:29:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 15 23:15:38 2015 +0000"
      },
      "message": "audio policy: add binder calls for audio source control\n\nAdd binder methods to IAudioPolicyService to control activity\nof external audio sources (e.g FM tuner).\n\nChange-Id: I2008308a6a996baeae502b68a790d87281efe2ff\n"
    },
    {
      "commit": "cfdd52423cee9efea73023feeaa74279ebd45b7c",
      "tree": "154c4ea34b3fc95dbde268fb24be2f2915438c78",
      "parents": [
        "5e1c007038df74b389018e762d5059cacecff59e",
        "de80105c3f2db0eabd47640c49387ea3b44d4782"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 15 21:11:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 21:12:01 2015 +0000"
      },
      "message": "Merge \"AudioPolicyManager: notification of dynamic policy mix activity\""
    },
    {
      "commit": "a5bf4e0339a10b7db936c739fbfd6cf3cb00fbb8",
      "tree": "fea070a835cfb6fc870072331926020623bce8bf",
      "parents": [
        "7233234a32d22d2ffb63ed4e92df339458047887",
        "99acce4526db0f14be6e516ecb3920d5ed66877b"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Apr 15 03:11:13 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 03:11:14 2015 +0000"
      },
      "message": "Merge \"Revert \"stagefright: define CB_CODEC_RELEASED and ReleaseReason enum.\"\""
    },
    {
      "commit": "de80105c3f2db0eabd47640c49387ea3b44d4782",
      "tree": "9775c7bbe30ef1ab13a888def8531cb0f87b1756",
      "parents": [
        "079e121934106860af5ff5491bd3884453d1fdb3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 14 19:10:14 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 14 19:20:20 2015 -0700"
      },
      "message": "AudioPolicyManager: notification of dynamic policy mix activity\n\nImplement non-stream type specific ref counting in output\n  descriptors to keep track of mix activity.\nNotify audio policy client of mix activity changes.\n\nBug 20226914\n\nChange-Id: Iec939cb640c58056f88947b611d23b4bb6d8a11b\n"
    },
    {
      "commit": "7233234a32d22d2ffb63ed4e92df339458047887",
      "tree": "807509f7cba92cf490d3c82da300a9d686eea02d",
      "parents": [
        "be39e102a64f48fb3afe6ca412231f17df3c3c87",
        "67e7f543c7f1c4fe4ee1989ceb0aebe44a63b49e"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Apr 15 01:41:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 01:41:58 2015 +0000"
      },
      "message": "Merge \"media: use ResourceManagerService with MediaCodec\""
    },
    {
      "commit": "be39e102a64f48fb3afe6ca412231f17df3c3c87",
      "tree": "cdcef473819021571445f55fb2059c71f2fe147e",
      "parents": [
        "948dbbbe0d75f1975a80eafd53d6b8daa8f92223",
        "a0d0ba51ad60a68117a0ee78e37ab78715b8a069"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 15 01:32:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 01:32:25 2015 +0000"
      },
      "message": "Merge \"HLS: parse stream resolution and set maxWidth/maxHeight\""
    },
    {
      "commit": "948dbbbe0d75f1975a80eafd53d6b8daa8f92223",
      "tree": "1394f250b7657a7d39ee2b270c7a51281c30c692",
      "parents": [
        "4123d6db0642cd13e69230705b12d6b6fee6f73f",
        "8cfad968d5ec429b033caff9743f1ef15090be61"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 14 22:28:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 22:28:27 2015 +0000"
      },
      "message": "Merge \"stagefright: metadata retriever changes for capture fps\""
    },
    {
      "commit": "67e7f543c7f1c4fe4ee1989ceb0aebe44a63b49e",
      "tree": "7de894fc9626b36de6eed70812962380ca217f22",
      "parents": [
        "9e6955a19bf77ebf27b770e910efbe1ebf1ceac0"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Mar 13 10:47:08 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 14:16:12 2015 -0700"
      },
      "message": "media: use ResourceManagerService with MediaCodec\n\nBug: 19620911\nChange-Id: I235a97e5195b28645b7834dda0dd77307d93f4a8\n"
    },
    {
      "commit": "99acce4526db0f14be6e516ecb3920d5ed66877b",
      "tree": "d97838f1d697448b4b55c3485761518b3037ac7a",
      "parents": [
        "ea20d117ef9b4e867ec3982c7d070e719617ba2f"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 21:12:53 2015 +0000"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 21:12:53 2015 +0000"
      },
      "message": "Revert \"stagefright: define CB_CODEC_RELEASED and ReleaseReason enum.\"\n\nThis reverts commit ea20d117ef9b4e867ec3982c7d070e719617ba2f.\n\nChange-Id: Ia77448a81429814e6915eca9c1cd854ca0e623cc\n"
    },
    {
      "commit": "a0d0ba51ad60a68117a0ee78e37ab78715b8a069",
      "tree": "8d7555285a426fd3b77b93fcfd550dc5c1e9f0c2",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 10 22:41:56 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 14 11:39:16 2015 -0700"
      },
      "message": "HLS: parse stream resolution and set maxWidth/maxHeight\n\nbug: 20160436\n\nChange-Id: Ic3adb84d3c65cc65f62fc509a99d09602db862a1\n"
    },
    {
      "commit": "b23cabdb71b98dc5e852f5d06be271696fea92c7",
      "tree": "5fd928f892970e2d905fdfcc502a0204d62a149d",
      "parents": [
        "9e6955a19bf77ebf27b770e910efbe1ebf1ceac0",
        "551b5355d34aa42890811fc3606d3b63429296cd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 14 15:02:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 15:02:12 2015 +0000"
      },
      "message": "Merge \"AudioRecord::obtainBuffer() can return nonContig like AudioTrack\""
    },
    {
      "commit": "8cfad968d5ec429b033caff9743f1ef15090be61",
      "tree": "10780dace38525633eb6c55f5ecf2d1713980eba",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 07 17:53:11 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 13 22:26:33 2015 -0700"
      },
      "message": "stagefright: metadata retriever changes for capture fps\n\nbug: 19460202\nChange-Id: I20afded0b7eec45b2f25b51cf59d9f48eada74d8\n"
    },
    {
      "commit": "551b5355d34aa42890811fc3606d3b63429296cd",
      "tree": "a55a6f457f11025f653241a58d475fe6a8269be5",
      "parents": [
        "7d669b3551c20109f5544455ca1555499693e1e1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 11:30:28 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 13 18:02:09 2015 -0700"
      },
      "message": "AudioRecord::obtainBuffer() can return nonContig like AudioTrack\n\nAnd fix error handling in both AudioRecord and AudioTrack.\n\nChange-Id: I4853d736cc6d2c05de5b18b0eac62716edfa62ec\n"
    },
    {
      "commit": "9e6955a19bf77ebf27b770e910efbe1ebf1ceac0",
      "tree": "04fbb621d9f9262bdec827d80f9df998a48f90ff",
      "parents": [
        "5795cb168634680fd5c835849c8fcf48dd6f532b"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Mar 26 13:52:57 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 13 18:01:51 2015 -0700"
      },
      "message": "media: handle overrides and measure max codec instance.\n\nBug: 19620911\nChange-Id: I68d5919284700f37ccc6c6b9f96cd87ccdd40e6a\n"
    },
    {
      "commit": "5795cb168634680fd5c835849c8fcf48dd6f532b",
      "tree": "b57d8881970ec7f29ceaf20bcbd604991f6a1444",
      "parents": [
        "4264bbd7af97aeae87f1907b96f62e4025c989d0",
        "c1f5cb4b11d0c9f52f69aec4fe2d36da2f8139c9"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 00:57:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 00:57:57 2015 +0000"
      },
      "message": "Merge \"libstagefright: parse global settings from codec xml file.\""
    },
    {
      "commit": "c1f5cb4b11d0c9f52f69aec4fe2d36da2f8139c9",
      "tree": "7e5049d6725c4a6c1947a743659598c391cf0665",
      "parents": [
        "52e88b2986536e83a7a6da63461556b8734a85f3"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Mar 25 16:19:58 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 13 17:51:14 2015 -0700"
      },
      "message": "libstagefright: parse global settings from codec xml file.\n\nAlso parse a new codec limit \"max-supported-instances\".\n\nBug: 19620911\nChange-Id: I6574c168b0c2b1aa649883958d3073edc01a4a03\n"
    },
    {
      "commit": "e6109e2f10b43c2cc2561c6fd6633b5f988bd7a9",
      "tree": "3b8f9bd7d8caab7cdd2e58ad5a918619938db9a3",
      "parents": [
        "421f47ca9c2dcc78584b2bb609c3755483b55155"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 10 17:18:22 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 10 17:48:56 2015 -0700"
      },
      "message": "mediaplayer: support async mode for widevine legacy mode\n\nBug: 14679336\nChange-Id: Id224eb8c31ec148ca9a144758cc56ddbf5465f5c\n"
    },
    {
      "commit": "ed5554fb1c837f6b1008d3910018c979c57da502",
      "tree": "65ebd5ffd8e905b4756f01a508974464e2b4e5f0",
      "parents": [
        "52e88b2986536e83a7a6da63461556b8734a85f3"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 06 14:17:24 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Apr 10 14:49:44 2015 -0700"
      },
      "message": "libstagefright: handle MediaFormat \"operating-rate\" key.\n\nBug: 19620911\nChange-Id: I846d3cc10308a13f2ed92bb82ba7e8236d9c67d1\n"
    },
    {
      "commit": "4c1efbc76f1dfeb9427617e451042a12bfb59ad3",
      "tree": "43c39c7172b3cfbbc26678a5233702a011ef27b3",
      "parents": [
        "c255757c795e5db87bafa6609c4ae052cf38b45b",
        "1849570240443d1f75775c205fa658f7070849c6"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 10 21:03:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 21:03:24 2015 +0000"
      },
      "message": "Merge \"Add a method to associate MediaDrm session with MediaCrypto\""
    },
    {
      "commit": "1849570240443d1f75775c205fa658f7070849c6",
      "tree": "86ad28892b0e8b49c8666ad39e340234c610e709",
      "parents": [
        "2fb25c873e1a7f346bd8c7c072a85ca6a74b0e95"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 10 04:10:59 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 10 04:10:59 2015 -0700"
      },
      "message": "Add a method to associate MediaDrm session with MediaCrypto\n\nPreviously, to associate a MediaDrm session with MediaCrypto,\nthe MediaDrm sessionId was passed as initData to the MediaCrypto\nconstructor.  This is not ideal for two reasons: it\u0027s pretty\nobscure and you can\u0027t change the association without tearing\ndown the MediaCodec/MediaCrypto and starting all over.  Use\ncases like key rotation require being able to update the\nMediaDrm session post-construction.  This CL addresses both of\nthese issues.\n\nbug: 19570317\nChange-Id: Ieb32d04d61742fc1dee2105dd904690d44c46c7b\n"
    },
    {
      "commit": "7d014e50b3acd60e73ed7d7a74dc58485c7a413c",
      "tree": "d2d5a07889b721c5d775c9da8c9dbc0531d19173",
      "parents": [
        "e62e16371b6c2f33072b3345e1d1853673b9a3d8",
        "8edb8dc44b8a2f81bdb5db645b6b708548771a31"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 10 03:28:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 03:28:12 2015 +0000"
      },
      "message": "Merge \"Add playback rate to AudioTrack\""
    },
    {
      "commit": "e62e16371b6c2f33072b3345e1d1853673b9a3d8",
      "tree": "7b771118f2df495918ce679dbd62f42b30392603",
      "parents": [
        "1c2dc0643141483cb7f90ee032845a1c38fe093a",
        "c5656cc900aeb4a705e27508dd82c70030a97709"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 10 03:27:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 03:28:00 2015 +0000"
      },
      "message": "Merge \"Add playback rate to AudioMixer\""
    },
    {
      "commit": "8edb8dc44b8a2f81bdb5db645b6b708548771a31",
      "tree": "663bda0f8a3d43894fa6d3d3f4283ed0df427f03",
      "parents": [
        "c5656cc900aeb4a705e27508dd82c70030a97709"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 19:13:55 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 18:49:15 2015 -0700"
      },
      "message": "Add playback rate to AudioTrack\n\nBug: 19196501\nChange-Id: I6411e1d3ce652b711a71a6d9df020cb5f60d4714\n"
    },
    {
      "commit": "541c1721e517a44127f0086f77b4e679849bb8cc",
      "tree": "18d35f7ffc8bdd7dc5d006c548b20af554a7f42a",
      "parents": [
        "2fb25c873e1a7f346bd8c7c072a85ca6a74b0e95",
        "fa6a06765e7b92b7ba265482bd4cf3074f9ff6cc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 09 23:59:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 23:59:06 2015 +0000"
      },
      "message": "Merge \"MediaClock: allow user to query playback rate.\""
    },
    {
      "commit": "079e121934106860af5ff5491bd3884453d1fdb3",
      "tree": "9e632f4ac530466a4d98ddde47b8f44f8378679c",
      "parents": [
        "bd903e363faeacaeae98252bfc753d5cac9de602",
        "ea20d117ef9b4e867ec3982c7d070e719617ba2f"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 09 22:28:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 22:28:54 2015 +0000"
      },
      "message": "Merge \"stagefright: define CB_CODEC_RELEASED and ReleaseReason enum.\""
    },
    {
      "commit": "ea20d117ef9b4e867ec3982c7d070e719617ba2f",
      "tree": "3a573f404a1fdbc793aa659ea2cfe63403f4adb4",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 09 13:54:27 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 09 14:56:47 2015 -0700"
      },
      "message": "stagefright: define CB_CODEC_RELEASED and ReleaseReason enum.\n\nBug: 19620911\nChange-Id: I95e257c8aea2ef218f27ffaa2e62a8f12554d824\n"
    },
    {
      "commit": "fa6a06765e7b92b7ba265482bd4cf3074f9ff6cc",
      "tree": "745f872831d337fb97d6130765b1078ae74607b0",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 09 14:56:25 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 09 14:56:25 2015 -0700"
      },
      "message": "MediaClock: allow user to query playback rate.\n\nBug: 19666434\nChange-Id: I306579e481cfcf923422d50d3d5cfae045ef2227\n"
    },
    {
      "commit": "c5656cc900aeb4a705e27508dd82c70030a97709",
      "tree": "930d4266db7b4d93eb7ade5629812a722dc7920f",
      "parents": [
        "857d5a20a956ef61b64ae07b018ecc2f1eb0a503"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 19:04:33 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 12:37:01 2015 -0700"
      },
      "message": "Add playback rate to AudioMixer\n\nBug: 19196501\nChange-Id: I42d1f90e6297cf3f1304860d1691a5dfedd4c37d\n"
    },
    {
      "commit": "03763a9573fcfdd0f85dd9ac0203e7da525a6c98",
      "tree": "cf48ab8ce281938ef7440a3ad67664cbbd628a39",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe",
        "c481b5012a5f6cf72e5e93b36f1ed4c9169916f2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Apr 09 17:47:46 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 17:47:47 2015 +0000"
      },
      "message": "Merge \"Pass crypto source data using a shared buffer\""
    },
    {
      "commit": "c481b5012a5f6cf72e5e93b36f1ed4c9169916f2",
      "tree": "bbb7920204199b43cd24075d48b8fa387a43059f",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 06 18:21:05 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 08 18:33:59 2015 -0700"
      },
      "message": "Pass crypto source data using a shared buffer\n\nMediaCodec was using a binder transaction buffer\nto pass encryption source data for protected content.\nOn some 4K content, the max binder transaction buffer\nsize was being exceeded.  This change uses a shared\nbuffer for the encryption source data instead of a\nbinder transaction buffer, which avoids the problem and\nmay be more efficient.\n\nbug: 20027687\nChange-Id: I36a24ebf600d7e1064b78e48b167fdc29b2c65e9\n"
    },
    {
      "commit": "6770c6faa3467c92eabc5ec9b23d60eb556a0d03",
      "tree": "45470127b227dbda5a346bb1902f92f8998c25bb",
      "parents": [
        "73c02e4277b399c2ec1555d32b6ad5df23bb83dc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 13:43:36 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 15:58:56 2015 -0700"
      },
      "message": "Enable 8 bit and float pcm record formats for AudioFlinger\n\nUpdate sampling rate handling as well.\n\nBug: 19570772\nChange-Id: I872248e64c0578b2e48869a68fee0d51bd0640c3\n"
    },
    {
      "commit": "6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15",
      "tree": "2ebe8fb3630e8e33baa66be39305df86eab83c7d",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2",
        "aa9811945f575614b3482d09e4d969792701cebb"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Apr 08 17:08:01 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 17:08:01 2015 +0000"
      },
      "message": "Merge \"Adding explicit routing API to AudioTrack\""
    },
    {
      "commit": "aa9811945f575614b3482d09e4d969792701cebb",
      "tree": "1744aa567efe78c3062ec80da19277d96def0725",
      "parents": [
        "41efeb2b477066d96ad34a048f34fb6fb34213ec"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Sat Mar 21 09:55:15 2015 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Apr 08 09:51:07 2015 -0700"
      },
      "message": "Adding explicit routing API to AudioTrack\n\nChange-Id: I40c048c7644c46f4e4f7103875206c0785c4b1dc\n"
    },
    {
      "commit": "e58e2a168e4a8bbd55e31bf12bd03ffc437c8226",
      "tree": "b05e698168e6b616b058193cb425491e84b62575",
      "parents": [
        "594eddf21facc3e84a4de912a0e2d45c880fd1ab",
        "3b8798ae4b3e27c7f7bee9794995b78a12adc4f8"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 07 19:14:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 07 19:14:52 2015 +0000"
      },
      "message": "Merge \"stagefright: add new MediaCodec callback CB_RESOURCE_RECLAIMED.\""
    },
    {
      "commit": "002135d149d8604e972d1b353d768f293fbce15f",
      "tree": "2b574bf6a084149bb75975e372b2f0516bf2276c",
      "parents": [
        "aa80951a578c1843708227b63456474f99e5e868",
        "d47dfcb5a2e5901c96fc92662cec7aa30f7f8843"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 03 18:48:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 03 18:48:28 2015 +0000"
      },
      "message": "Merge \"HLS: misc bug fixes\""
    },
    {
      "commit": "d47dfcb5a2e5901c96fc92662cec7aa30f7f8843",
      "tree": "ac077cfad563e38bf91e4b2c95e7e28056bf7439",
      "parents": [
        "ac41a6f253a69671f6e018fcc84daf0030615ca9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Mar 27 15:53:45 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 02 16:31:09 2015 -0700"
      },
      "message": "HLS: misc bug fixes\n\n- fix no target-duration case\n\n- fix for audio-only \u003c\u003d\u003e audio/video switching\n\n- disable audio-only variants if there is at least\n  one variant with video\n\n- fix mpeg2ts PTS wraparound when bandwidth adapting\n\n- tweak up/down switch marks\n\nbug: 19567254\n\nChange-Id: Ib46144203c56dfc96eccd6ddaa3867e8a4f2c6a9\n"
    },
    {
      "commit": "b28753e19550e5051cd02e6af72ab06e4eff04e0",
      "tree": "5c9b7dabb3d4abe6aa20bf512ec025eb23d1ca04",
      "parents": [
        "d4d55cdf31a3faa619bfa043f5b0f170f6ffd139"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 01 13:06:28 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 01 16:53:33 2015 -0700"
      },
      "message": "audio port: support multiple clients\n\nAdd support for more than one audio port callback client per process.\n\nChange-Id: I657c4fc28d5d2d993307551e3e69567dc60196cb\n"
    },
    {
      "commit": "0f5d69123490bb3c4fe26129dfd23e21ce184c88",
      "tree": "0226e70e4bd45d61b940f60e24efc846c5af8244",
      "parents": [
        "3e414355fbed266916b446eaabbb3f9c153635b2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 11:30:00 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 25 09:27:09 2015 -0700"
      },
      "message": "Remove deprecation FIXMEs for TRANSFER_OBTAIN mode\n\nChange-Id: I7f43aabdb092e1465d79cd0eea5944fff18b93db\n"
    },
    {
      "commit": "957af4cef721c1eec1606850e77ad2ef1fd0eb0a",
      "tree": "3c05978c8a584181355db31052116afcda8db5f4",
      "parents": [
        "343dad3c1ffdd780bbf247ceebb1f2fd344a5d51",
        "3622cdff65f34a99d2f55936a895387ad41510ce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 24 20:41:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 20:41:38 2015 +0000"
      },
      "message": "Merge \"AudioRecord::read() can be non-blocking to match AudioTrack\""
    },
    {
      "commit": "82ceac025459b5b8887441d709081ec29c6b9416",
      "tree": "6400948366e9d51774601a03d149a4ba7b33e2cb",
      "parents": [
        "21b51b61ee52e6aa74d98b138d3dd4f0e17b1441",
        "bfd318402924414fbde4d31c9d23cc423f10b630"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 24 19:42:30 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 19:42:31 2015 +0000"
      },
      "message": "Merge \"set() in AudioRecord and AudioTracks needs no lock\""
    },
    {
      "commit": "21b51b61ee52e6aa74d98b138d3dd4f0e17b1441",
      "tree": "ed8a111abfa1da3548ddd46d6db8c94d9a4ceb0c",
      "parents": [
        "3fac40b9e80e7d27fa613afe22048872f2ff6d9e",
        "1d8b3b684f469f346c2e0d4420e25a23aa1dda55"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 24 19:16:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 19:16:54 2015 +0000"
      },
      "message": "Merge \"Remove AudioRecord::notificationFrames()\""
    },
    {
      "commit": "ebb80468d8e31e22b867744d86b57bd4bc3186fd",
      "tree": "1871edf0c2c023d86ed394a66a0e63afb2a49fd5",
      "parents": [
        "6ce2ed7e9d003c4580e2813d657660ef18865df6",
        "231c3d169ad029689f9d688b68179af7e96b8d78"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Mar 24 16:47:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 16:47:10 2015 +0000"
      },
      "message": "Merge \"media: add ResourceManagerService\""
    },
    {
      "commit": "6ce2ed7e9d003c4580e2813d657660ef18865df6",
      "tree": "18b29c59043564dfd0ca9f27c219749e3da908f2",
      "parents": [
        "ec648447b7dcab701c436a54bd38a1abd8037be1",
        "c8db9712d9abe9b0d74193ea7d7cff428e32e62c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Mar 24 16:29:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 16:29:22 2015 +0000"
      },
      "message": "Merge \"MediaSync: support MediaSync in native code.\""
    },
    {
      "commit": "ec648447b7dcab701c436a54bd38a1abd8037be1",
      "tree": "a83bc7a008f5671316e18095b15f9fb7b746fd81",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2",
        "d072c909d87f8150433860f6de4c11df6e09e2f9"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Mar 24 00:05:43 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 00:05:44 2015 +0000"
      },
      "message": "Merge \"Report key request message type for unprefixed EME\""
    },
    {
      "commit": "231c3d169ad029689f9d688b68179af7e96b8d78",
      "tree": "09dbf8d4dc47f5698c08190f498357b455a396c7",
      "parents": [
        "84b784dd4f340331d36b1be3de05a6c814d9795c"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Mar 11 15:10:32 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Mar 23 17:02:28 2015 -0700"
      },
      "message": "media: add ResourceManagerService\n\nBug: 19620911\nChange-Id: Iea173d310d31781bc50effe3d9bd6553cb5139eb\n"
    },
    {
      "commit": "3622cdff65f34a99d2f55936a895387ad41510ce",
      "tree": "c6af21a8fb7d4252d0ac78e542bb1baa5ae29f17",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 10:58:21 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 14:53:01 2015 -0700"
      },
      "message": "AudioRecord::read() can be non-blocking to match AudioTrack\n\nChange-Id: I23b9466b81ab6037d0bccd5e6f5974b7bd4aeacb\n"
    },
    {
      "commit": "bfd318402924414fbde4d31c9d23cc423f10b630",
      "tree": "35662fc06a14886bfcb74cfc6dbdf274a3497ee7",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 09:01:44 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 14:52:03 2015 -0700"
      },
      "message": "set() in AudioRecord and AudioTracks needs no lock\n\nChange-Id: I9d61b3d117e9b21fbbfad772d8981a5abb8fafae\n"
    },
    {
      "commit": "1d8b3b684f469f346c2e0d4420e25a23aa1dda55",
      "tree": "a14ee945d4f796d05fa4fac6fe621a057705e1c5",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 08:55:02 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 14:51:28 2015 -0700"
      },
      "message": "Remove AudioRecord::notificationFrames()\n\nThis API was unused, and is not present in AudioTrack\n\nChange-Id: I66a1eedc149af085269c0f438c3c8d4e226a0e5b\n"
    },
    {
      "commit": "d1e85c354bf08cbf7fb7619f91bda1c416b40627",
      "tree": "6ba9419f727ac171f956120f225cad153c1245f5",
      "parents": [
        "17fe26e5b500671ca0773b57b77fa63b113aadae",
        "d8772b24079b61018b455e602f3030284c30c7f5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 18:29:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 18:29:33 2015 +0000"
      },
      "message": "Merge \"Update AudioRecord comments to match AudioTrack\""
    },
    {
      "commit": "17fe26e5b500671ca0773b57b77fa63b113aadae",
      "tree": "521d1db72da5e9dbfd198f9302d095863a29e917",
      "parents": [
        "7be5db4925258f113aa228e7212d66243adcaf6f",
        "a5017872000a938667c76d760a866547c3719d09"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 18:29:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 18:29:20 2015 +0000"
      },
      "message": "Merge \"Update AudioTrack constructor and set() comments\""
    },
    {
      "commit": "0c5260cea542fdf8aa5f36b4f8de37f3b1331398",
      "tree": "5e748e8ea1985ab15e4e321aca6f89b24255ac3d",
      "parents": [
        "c19dc82b6198d06b37018d649bdff3a16d871598",
        "b882e936ead71ee407a5d6f1e7194115fc13c410"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 17:59:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 17:59:05 2015 +0000"
      },
      "message": "Merge \"Update AudioTrack comments to match AudioRecord\""
    },
    {
      "commit": "c19dc82b6198d06b37018d649bdff3a16d871598",
      "tree": "faafcc9625c23979bc966ec3e5df849f44266356",
      "parents": [
        "f85e854158cbed22a68625d2fafea50b86ca791f",
        "85fc799d4cde549c7cc82d9e5c84f21e161ecfbe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 17:29:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 17:29:24 2015 +0000"
      },
      "message": "Merge \"AudioTrack::dump() comment\""
    },
    {
      "commit": "f85e854158cbed22a68625d2fafea50b86ca791f",
      "tree": "563485ca195f3919ba1835cfa1f3c1c57094dcfd",
      "parents": [
        "b6caa81602880670299393de833fc1d69043d581",
        "5014c94c1bbac4a4284576b0015ba75145237593"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 17:21:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 17:21:03 2015 +0000"
      },
      "message": "Merge \"AudioRecord::releaseBuffer() buffer is const *, like AudioTrack\""
    },
    {
      "commit": "b6caa81602880670299393de833fc1d69043d581",
      "tree": "8ae7eddaab58da9b9b7ceb2c4888ddd2c63b9663",
      "parents": [
        "8681bd84965606a4540226b76ea1db1a2198809d",
        "05163541326f51cefda91df5127d378c20b5a73f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 16:57:00 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 16:57:00 2015 +0000"
      },
      "message": "Merge \"Remove dead AudioTrack::setAttributesFromStreamType()\""
    },
    {
      "commit": "8681bd84965606a4540226b76ea1db1a2198809d",
      "tree": "1e3705a0de3de367bafe6a5854bf31f167227057",
      "parents": [
        "32db812d43fc17a8c24f3ff5ac81e5002f3ce126",
        "32860f77787f41abac08afdfc2592272ccc31bcb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 16:36:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 16:36:53 2015 +0000"
      },
      "message": "Merge \"Deprecate AudioRecord::getInput() and AudioTrack::getOutput()\""
    },
    {
      "commit": "5c242217a809e13a1704100fb991e03ce4985e6c",
      "tree": "c8bc3a7c49f687c2afed67329ef0d531bb1d6b3c",
      "parents": [
        "e063c308aaeaf85c9c41fda5df083a8aa90bdb24",
        "a9757af8a140a1d5ae261c22f9d7eebef99cbe96"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 16:05:18 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 16:05:19 2015 +0000"
      },
      "message": "Merge \"Move AudioTrack::isOffloaded() and isDirect() variants\""
    },
    {
      "commit": "e063c308aaeaf85c9c41fda5df083a8aa90bdb24",
      "tree": "f4ec5b1176ca063f48644f4abe1c86eb9e7327e9",
      "parents": [
        "0fe431544e5320a58508fb0533063d36dad1a473",
        "d2027336b45f524a196403d351ec317782793792"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:56:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:56:20 2015 +0000"
      },
      "message": "Merge \"Whitespace\""
    },
    {
      "commit": "0fe431544e5320a58508fb0533063d36dad1a473",
      "tree": "3fba1e4666b6778fa720db5963c304b91d2823f4",
      "parents": [
        "999c894e18a64e0ded860a1bb51e14822ed31e86",
        "6991ed25d8b5c2f75325ccd7cc522762da6f2b09"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:47:44 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:47:44 2015 +0000"
      },
      "message": "Merge \"Add FIXME to deprecate AudioTrack::getMinFrameCount()\""
    },
    {
      "commit": "999c894e18a64e0ded860a1bb51e14822ed31e86",
      "tree": "3845b691d1afcf45592bd707748fa19954abb9bd",
      "parents": [
        "ad7345c0d3c4e3562a70ad89d797f7473c7be57a",
        "17ea1351633d4f5e4f9eafd0778eb8b59fa30f10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:39:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:39:38 2015 +0000"
      },
      "message": "Merge \"Update AudioRecord comments to match AudioTrack\""
    },
    {
      "commit": "ad7345c0d3c4e3562a70ad89d797f7473c7be57a",
      "tree": "f52441979e6aebf9b1b618bc7f7b7c665f78a5b7",
      "parents": [
        "d34ed0f51697623456ddbca10ef9ccf5367ce952",
        "d198b85a163330b03e7507c9e8bfeb5f4d958a6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:30:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:30:42 2015 +0000"
      },
      "message": "Merge \"Fix typos\""
    }
  ],
  "next": "d8772b24079b61018b455e602f3030284c30c7f5"
}
