)]}'
{
  "log": [
    {
      "commit": "d84c79bf628d0f96189429add9c8b0fbb7acace9",
      "tree": "f56fd9f5388430978309fe894e492b740863fbf6",
      "parents": [
        "26e36ff8689d6efc9d54db43cfbbb317f383079a",
        "c34e097efc5eeefe977972b08a42509e8aa3ccc5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 16:54:07 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 25 16:54:07 2013 -0700"
      },
      "message": "am dd309b97: Merge \"Handle the case where an asynchronous prepare was initiated and then\" into jb-mr2-dev\n\n* commit \u0027dd309b97f3e30cb8ab30892b4bf6b5d824853a86\u0027:\n  Handle the case where an asynchronous prepare was initiated and then\n"
    },
    {
      "commit": "5a7501304d815552c3bfaee8789821e4884d073b",
      "tree": "944512c454d0add19a0ff4036299495e3fd32027",
      "parents": [
        "159ef7310215bdf86f7d64a797cce3ff61951a2c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "message": "Handle the case where an asynchronous prepare was initiated and then\n\nthe mediaplayer was reset.\n\nChange-Id: Ib241747c5dc002b88a3854569c1f8340b2a8ef41\nrelated-to-bug: 8688986\n"
    },
    {
      "commit": "6bc71cac3619b0a5bb70d87abded691f3f929e3b",
      "tree": "c4668ec4594fc9a651d95d692a7a2956bf8f4fcb",
      "parents": [
        "3ba2aea1588438d0768ed48fc2749a2034eb3a2b",
        "aa47eb2e0560ade9e0d899e72d733bb6764973b6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 24 09:52:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 24 09:52:49 2013 -0700"
      },
      "message": "am 628a8c0e: Merge \"fix a race condition of MediaPlayerServce::Client::mClient\"\n\n* commit \u0027628a8c0ed91531468f5c615fea8745f63cc812aa\u0027:\n  fix a race condition of MediaPlayerServce::Client::mClient\n"
    },
    {
      "commit": "aa47eb2e0560ade9e0d899e72d733bb6764973b6",
      "tree": "6279ecc72189f855a6e247402e668af1b6c0a59f",
      "parents": [
        "6db76e8b8f561355198fc91dd95498a59ad38a20",
        "dcfefde6be8f9f33bbd2b3546f3be946d958d677"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 24 15:46:11 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 15:46:13 2013 +0000"
      },
      "message": "Merge \"fix a race condition of MediaPlayerServce::Client::mClient\""
    },
    {
      "commit": "ca6867fbac7a69c4d7a253917ecf6d4abc18d49c",
      "tree": "e52f4f2870cc4a0c58743000d88a10f410c5247f",
      "parents": [
        "8461772f46769a384ea87b42848e2d77de529332"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 10:54:03 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 12:52:33 2013 -0700"
      },
      "message": "Fix a typo that would cause us not to shutdown/flush the decoders in\n\nsome cases.\n\nrelated-to-bug: 8630032\n\nChange-Id: I8e94b53b34e137e827e9630c65f3252ea91e4ebd\n"
    },
    {
      "commit": "602f5bbd7596ec3fe447fde4329d5d4f0b370835",
      "tree": "15871fed5f74c20a01c45e1aa370f75be9ad9a00",
      "parents": [
        "474c6539e3592aece37616d0b39ef008b61260a0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "message": "Guard against mLooper \u003d\u003d NULL.\n\nChange-Id: I01aa0e47b55d0dffe34525edf9f055a5cb4dc70f\nrelated-to-bug: 8620223\n"
    },
    {
      "commit": "2070254f241f52cadb69bc2323f56df72704f1ca",
      "tree": "dd5aead0ce971332761599cc73189b8e1fea96a9",
      "parents": [
        "ecba7488c5cceaacef95836b1b476433451e7761"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:07:55 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:31:55 2013 -0700"
      },
      "message": "Instead of returning an error, return an invalid duration (-1 ms)\n\nif no duration information was available. This prevents us from\nentering ERROR state, effectively rendering the player instance useless.\n\nChange-Id: I602d2661ae8b8633360306c0ea9208fb11e2bf17\nrelated-to-bug: 8596285\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": "505208dd38ab2f143e6a3ff6a2c262d0fab76b7e",
      "tree": "0ea6a3dd880bca0a840e0fd3d821c943be083a42",
      "parents": [
        "1dc6fcccfe33c65a2253bc3385e45d4e77e4b79e",
        "0cb126a34fe32f81c830858102471e7be2ce85b1"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 05 01:16:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 01:16:19 2013 +0000"
      },
      "message": "Merge \"Implement async event callout from drm plugin to Java app\" into jb-mr2-dev"
    },
    {
      "commit": "0cb126a34fe32f81c830858102471e7be2ce85b1",
      "tree": "a20999e4b89a78375a1b69cb3a0bef96fab74362",
      "parents": [
        "8856c8b8777d0e0de11b2de863a336b001024e29"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 02 13:08:05 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 03 12:20:53 2013 -0700"
      },
      "message": "Implement async event callout from drm plugin to Java app\n\nChange-Id: I007f147d693664e777b8758be2bb8a4c7ec0236b\n"
    },
    {
      "commit": "df41f485a9162407b32b7db1cea483f64bbd0c65",
      "tree": "4a25321560089605809b753fccc9365bca9f64bb",
      "parents": [
        "d2c90696403bb3c9e28d7b51d65c9468bdf8e78b",
        "8856c8b8777d0e0de11b2de863a336b001024e29"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 02 22:49:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 22:49:20 2013 +0000"
      },
      "message": "Merge \"MediaDrm API update\" into jb-mr2-dev"
    },
    {
      "commit": "8856c8b8777d0e0de11b2de863a336b001024e29",
      "tree": "21ed9ba7ba5db495085440b34ec75c72bf4af943",
      "parents": [
        "c9e58fcf57d865e6c82fdd4bf49d97f89203b2e4"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sat Mar 30 16:19:44 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 01 21:57:32 2013 -0700"
      },
      "message": "MediaDrm API update\n\nClarify offline usage of sessions and keys and implement\nimplement CryptoSession to support additional crypto use\ncases.\n\nChange-Id: I5d8000ce7e1dd7eba08969fc50296c9e1456c4fc\n"
    },
    {
      "commit": "7069bdf24a9e3393479368e83f9009817869c33c",
      "tree": "2e4698654f2d6d6d9d50fc527ec00f7480c84296",
      "parents": [
        "2f711486c2b35610fb8e114968263e6660cdb683"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 01 14:28:31 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 01 14:28:31 2013 -0700"
      },
      "message": "Fix seek in response to OnPrepared() for HLS content\n\nChange-Id: I0e52352845398a4db074e939487f6f6de94bd523\nrelated-to-bug: 8225122\n"
    },
    {
      "commit": "ad2bb2dd233b7220e29d2dafa3106ad498f3aea3",
      "tree": "825fc81526a4421833955121582bd715c4962897",
      "parents": [
        "ac51135d48ded504af38f0bc7fda47823419332f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 27 13:48:36 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 27 14:44:20 2013 -0700"
      },
      "message": "Fix valgrind error.\n\nThe constructor calls reset(), which in turn calls stop(), which then\naccesses mCaptureTimeLapse before it has been initialized.\n\nChange-Id: Ia94ac740b9bd1a0389c72647a5639dd25320d92c\n"
    },
    {
      "commit": "5beac28a34e557251bd4bbd77a6d9303a69d4319",
      "tree": "bddefa894193bdb535c5f0090e7edab2e3d9eca4",
      "parents": [
        "3a29ea87c8fdcd45987bcc9cd2b68961ac971d27"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 22 15:26:39 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 22 15:26:39 2013 -0700"
      },
      "message": "Load crypto plugins from additional shared libraries\n\nCurrently crypto plugins are expected to be in libdrmdecrypt.so.\nWhen there are multiple plugins supporting different schemes,\nthis approach requires source code integration across\nvendors which is unmanagable.  Also, for integration with\nMediaDrm where the crypto keys are obtained from a drm server,\nthe MediaCrypto plugin needs to interoperate with the MediaDrm\nplugin. This change allows {MediaCrypto, MediaDrm} pairs that\nare logically related to be implemented in a common shared\nlibrary.\n\nChange-Id: I7f6638f29171f91609fc2d944396365568630b56\n"
    },
    {
      "commit": "aab193b107e302e145b5c3d6e6c87f92ac296186",
      "tree": "0150308f9b4bf86e2ea73a23da6720f5fd989c3c",
      "parents": [
        "42404e895c182df761cbd2473d172e58e763ac89",
        "cc82dc6d500023eba6048616301a4b12682458db"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 20 16:48:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 20 16:48:55 2013 +0000"
      },
      "message": "Merge \"Implementing MediaDrm APIs\" into jb-mr2-dev"
    },
    {
      "commit": "8fb6f96e1cc246bc5630e1f5a0eb90f5459331b7",
      "tree": "50f65eabb52b7f241baa88268178021bcff5a156",
      "parents": [
        "27d11e240dad419f08e7edcd0857ee7806c65d76",
        "33da402287605e40e189289b11a08b8f5d515818"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 13 21:42:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 13 21:42:14 2013 +0000"
      },
      "message": "Merge \"remove uses of Surface in favor or IGraphicBufferProducer\" into jb-mr2-dev"
    },
    {
      "commit": "cc82dc6d500023eba6048616301a4b12682458db",
      "tree": "1f36f887af92cb4bee147e962b85ce10f35d587a",
      "parents": [
        "c93484ab9fdf044fd32f2388a3ce29040d2ba319"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 08 10:18:35 2013 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 13 13:39:48 2013 -0700"
      },
      "message": "Implementing MediaDrm APIs\n\nChange-Id: I9ff8eeb7d0c383b5c0c68cd54eb54ce7d2d22fe6\n"
    },
    {
      "commit": "33da402287605e40e189289b11a08b8f5d515818",
      "tree": "440b60a701b5d4e4d93293732cf5a4a8bef3727c",
      "parents": [
        "b05526fc3c0ccc9f9310830074e863212af433e0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 12 18:42:23 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 12 18:42:23 2013 -0700"
      },
      "message": "remove uses of Surface in favor or IGraphicBufferProducer\n\nChange-Id: I13d7a9553aa335bca790a3a59d389d7533c83d57\n"
    },
    {
      "commit": "9dffd24e00a1b2abd5e2dcc2366c0327ec3701b8",
      "tree": "593867dda4cf659baf90444ddd152cba2d68c86c",
      "parents": [
        "9ab909bff49b2eccde1b028901717c193ef723af"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 12 11:01:43 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 12 13:44:58 2013 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit f4edf442741886cdbe071e2d15f6e6247269f7c5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Mar 12 09:09:18 2013 -0700\n\n    Pass additional flags to the sink, use TCP by default in wolfiecast mode.\n\n    Change-Id: I41e11a2375d4199656e45c4f149d8441d0016092\n\ncommit 6302602ed280a38287f507159abfb40a1da38c5a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Mar 12 08:51:58 2013 -0700\n\n    tweaks\n\n    Change-Id: Ie29e422d7258be522f4bb1f6c5afcf74c937e547\n\ncommit a38a860e4979ba563cadbaafa21b084439449d26\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Mar 11 16:57:43 2013 -0700\n\n    Report average lateness all the way from NuPlayerRenderer...\n\n    Change-Id: I2e7700703ae656515e44b9c25610d26c75778111\n\ncommit a7d49b11675ea88be4029dd8451d1649db94571d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Mar 11 14:54:19 2013 -0700\n\n    Make TimeSyncer smarter, enable TunnelRenderer\n\n    Change-Id: I27377a60cd8feb01589da456967fddd34532c20e\n\ncommit 0f214c8ef68179f7b61512c37040939554013151\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Mar 7 15:57:56 2013 -0800\n\n    convert source timestamps to sink timestamps, report lateness.\n\n    Change-Id: I051a60fbbceca2f7b508ae3dac6e01e402bae39e\n\ncommit 04a4f8e16bad09157b5615a5fa45310438955832\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Mar 7 09:00:28 2013 -0800\n\n    Sync time between sink and source.\n\n    Change-Id: Ie8b4d75c957aa48310e7c81d1279761b9f821efe\n\ncommit aebe20e6184e3636a99082f8ece08e708015cb8d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Mar 6 09:03:12 2013 -0800\n\n    play with back pressure\n\n    Change-Id: I51eb69257e6a79e76f5f9c75ff99d8adbd083947\n\nChange-Id: Ifdf57228667fed7fc71c5090a2c3f7cea1037c5c\n"
    },
    {
      "commit": "48af7e8dd40883d6154e7029d9500072b551b5fa",
      "tree": "ce8b71d67a3313dc19c0691bc1b26d1244a106b4",
      "parents": [
        "68e6e24cb6cdd66c2209774c4871a2c47e8bbc8b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Feb 19 10:40:14 2013 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Feb 25 16:11:41 2013 -0800"
      },
      "message": "CameraService and Stagefright: Support AppOps\n\nCamera:\n- Signal to AppOpsService when camera usage starts and stops\n- Listen to permissions revocations and act on them\n- Currently just kill camera connection when permissions lost\n\nStagefright:\n- Pass on client name, UID to camera as needed\n\nBug: 8181262\nChange-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0\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": "46d13e3606b87d71379287672b54b50d0d9aa5cc",
      "tree": "e8109ccba1377865e831847f4ad81542671dd815",
      "parents": [
        "cfc3083927df14bf82403b20a45ae303a01c39f5"
      ],
      "author": {
        "name": "Roger Jönsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Mon Jan 21 17:15:45 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:37:09 2013 -0800"
      },
      "message": "Enable pause/resume for RTSP streaming\n\nWhen a stream is paused, RTSP Pause is also sent to the server.\nOtherwise the buffering might continue until the memory runs out.\nWhen the stream is resumed, RTSP Play will be sent in order to\nresume the buffering.\n\nChange-Id: I5dc1761140827c532451638c3fd3f34271e5b9ab\n"
    },
    {
      "commit": "cfc3083927df14bf82403b20a45ae303a01c39f5",
      "tree": "a6803785a07ff3fdbe8c9d84a0596d0040ecdbc6",
      "parents": [
        "0c3f0fa983107a8b5a4d6274179d15333fde8d3c"
      ],
      "author": {
        "name": "Roger Jönsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Mon Jan 21 16:26:41 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:32:55 2013 -0800"
      },
      "message": "RTSP buffering improvements\n\nAdded buffering start and end notifications for RTSP.\nMEDIA_INFO_BUFFERING_START is sent when buffering is started\nand MEDIA_INFO_BUFFERING_END is sent when the buffer has\nfilled up.\n\nThis patch also adds RTSP end of stream handling.\nEOS is signalled when BYE is received OR when\ndetecting end of stream even if no actual EOS is received.\n\nChange-Id: I5cccb6845060ae6afd66d9f735b89da81476cd13\n"
    },
    {
      "commit": "0c3f0fa983107a8b5a4d6274179d15333fde8d3c",
      "tree": "6ede9b14751812fcd5b9101e3f53a1910a3ac7a5",
      "parents": [
        "7f475c34ffc8e35345f2cceee2ef56a50bb5fea6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 10:44:39 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 10:44:39 2013 -0800"
      },
      "message": "HLS now properly publishes its \"seekable\" flags after connection\n\nhas successfully completed and a sufficient amount of data fetched,\nand only then signals that preparation is completed.\n\nChange-Id: I7684a14238b826909f518f2af506966e522dfcfc\n"
    },
    {
      "commit": "7f475c34ffc8e35345f2cceee2ef56a50bb5fea6",
      "tree": "d27f2ad0bb24ae1d97d4cf21fb692c3f2748f8c2",
      "parents": [
        "b81b557d6e89cc2960b74ab343a08b5b44bff1f2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 14:47:13 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 15:27:16 2013 -0800"
      },
      "message": "RTSP now properly publishes its \"seekable\" flags after connection\n\nhas successfully completed and only then signals that preparation is\ncomplete.\n\nChange-Id: I1a60f718e673fe1462c69369c40eafbed6a14326\n"
    },
    {
      "commit": "b81b557d6e89cc2960b74ab343a08b5b44bff1f2",
      "tree": "46b630f44dd82e2082d8a5682d63e02d18af6012",
      "parents": [
        "27243b75722c077699a593cb64947f1d763a177f",
        "57cea553cb19235553463412db5ad04c99835411"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 22:46:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 22:46:45 2013 +0000"
      },
      "message": "Merge \"Support for a \"preparation\" state that can take care of lengthy\""
    },
    {
      "commit": "57cea553cb19235553463412db5ad04c99835411",
      "tree": "484c824ca8ae2961e3f461f43d7330c1174618cc",
      "parents": [
        "ec29a2bfb5364a5968b77559fd13821b827d173a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 13:59:56 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 14:09:08 2013 -0800"
      },
      "message": "Support for a \"preparation\" state that can take care of lengthy\n\noperations in NuPlayer and its sources. Sources also can publish their\nflags now and the mediaplayer UI will be able to pick up on these.\n\nChange-Id: I4f2b7e5d105dcb4b6c9132cd0e8799efa0c6a14b\n"
    },
    {
      "commit": "27243b75722c077699a593cb64947f1d763a177f",
      "tree": "45f2fba07da11e72ed27d1ef9d34bcc1ea6438f5",
      "parents": [
        "ec29a2bfb5364a5968b77559fd13821b827d173a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 13:16:39 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 13:17:17 2013 -0800"
      },
      "message": "Fix a typo in MediaPlayerFactory that would prevent us from\n\nopting in to nuplayer for general media playback.\n\nChange-Id: I050f5178aadbb0b8bf422861ef885745c0b9006a\n"
    },
    {
      "commit": "81dd60e0340ddcf7f1d5fb80b6c30906fabf201a",
      "tree": "d29f39c38d2452c094468b88a2406f1970b6fc6a",
      "parents": [
        "5ab368af38fefacc4009e3ab1c1bbd00e62b3bcf"
      ],
      "author": {
        "name": "Oscar Rydhé",
        "email": "oscar.rydhe@sonyericsson.com",
        "time": "Mon Feb 20 10:15:48 2012 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 10:27:34 2013 -0800"
      },
      "message": "Added HTTP support for SDP files.\n\nAdded support for playing SDP files from http links. Previously,\nSDP files only worked when started from rtsp links\n(rtsp://a.b.c/abc.sdp), but they are just as common in http links.\n\npatch provided by \"Oscar Rydhé \u003coscar.rydhe@sonyericsson.com\u003e\"\n\nChange-Id: Ic73af3a9a002009dbe8b04c267a4621bf7fe2f46\n"
    },
    {
      "commit": "5ab368af38fefacc4009e3ab1c1bbd00e62b3bcf",
      "tree": "ca3c894a78eee86acb934a70ace03bad7efae1b8",
      "parents": [
        "c41c932328f35f5eed7e517e9b64db9144f2fcb0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 10:14:26 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 10:14:26 2013 -0800"
      },
      "message": "Groundwork to support bidirectional, asynchronous communication\n\nbetween NuPlayer and its sources.\n\nChange-Id: I1989022d806206b926555add3aa5c1fcf37aa78d\n"
    },
    {
      "commit": "279dcd89ab1d2de91dfe95e461412a0f577a6891",
      "tree": "fa0ae875d3404f6fae47823e4c3b2d09207dae9b",
      "parents": [
        "150a516ce434bd1df81e3c3070915e3f549bca59"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 30 10:41:25 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 30 10:41:25 2013 -0800"
      },
      "message": "Plumbing to reflect minor changes in the HDCP module API that allow for\n\nsupport of _decryption_ modules in addition to what we already supported.\n\nChange-Id: Ic37b87dc170ba8def3817991d25df798f21e950b\n"
    },
    {
      "commit": "5570227ac334479982a9dd8c1647c00f58f47c18",
      "tree": "885046de88c68c9fc468fd02617af4cafc6a758b",
      "parents": [
        "00169223fb04a14ddb542146223540e3695c8d27",
        "f37971f624164c3ed185d3f976404a6f60f49b9a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 21 08:09:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 21 08:09:11 2012 -0800"
      },
      "message": "Merge \"Remove unnecessary parameter\""
    },
    {
      "commit": "f37971f624164c3ed185d3f976404a6f60f49b9a",
      "tree": "e3455056e9e0512786cfdd832e1fd8bba765bc7c",
      "parents": [
        "34d7db5dd43000cac7e8e156d79e9f97ccbb8990"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 03 11:06:53 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 18 16:16:30 2012 -0800"
      },
      "message": "Remove unnecessary parameter\n\nJust get the parameter on server side\n\nChange-Id: I433a63104dbb257e0d862be2ab61847cb36d1c15\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": "3057c6925f20d944489a0ccea088d889e8388ebf",
      "tree": "630e286e1177558ffa73472f6b6d67540170da2c",
      "parents": [
        "e9810fae2ca6620337b75a787786cc0ea52adecd",
        "1a447be0cf1abc7564ae2afe7b4d2240c875de54"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 05 10:38:26 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 05 10:38:27 2012 -0800"
      },
      "message": "Merge \"setVideoSurfaceTexture is now synchronous and applied dynamically\""
    },
    {
      "commit": "e9810fae2ca6620337b75a787786cc0ea52adecd",
      "tree": "f848298646fb0163e6911ad8622adcc12a8eba3f",
      "parents": [
        "07dfb08e935fdfe9f73f452cf27e3e2b052eda4f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 03 15:20:40 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 05 10:34:34 2012 -0800"
      },
      "message": "Respect sample aspect ratio in NuPlayer.\n\nrelated-to-bug: 7569402\nChange-Id: I302de95d83b180bd2dc72ddd0c69a665dbce2527\n"
    },
    {
      "commit": "1a447be0cf1abc7564ae2afe7b4d2240c875de54",
      "tree": "a803fa1872f7dee894c405c8a3219c69f96e5aa5",
      "parents": [
        "3e5abe9b119513bdb5b8b8d7c9aa72de7339f78f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 03 11:18:00 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 03 11:40:44 2012 -0800"
      },
      "message": "setVideoSurfaceTexture is now synchronous and applied dynamically\n\nwhile playing.\n\nChange-Id: If9f08659a01bdc7dac0999730368e9dfa5e58d36\nrelated-to-bug: 5666482\n"
    },
    {
      "commit": "457ec421a62995845698ada8d84d6c9de8d222dc",
      "tree": "83370bd1839d400639890da27862ff66435774a4",
      "parents": [
        "e8cb004257565111cb261f3e9c786adba881859a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 30 10:53:22 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 30 11:28:02 2012 -0800"
      },
      "message": "Fix nuplayer seek jankiness by properly flushing decoders before\n\ninitiating the seek. Also refactor the nuplayer state machine to make this\na little more maintainable and extensible in the future.\n\nChange-Id: I36a673bdecff732bca7094c8f72bac24f37c01e9\nrelated-to-bug: 7120373\n"
    },
    {
      "commit": "f59ab0eb162cc32df4fc0af8d1a4500c5bce3ecc",
      "tree": "6851003e7af892906473b96685a03767068b6168",
      "parents": [
        "4aefd5fc4dde13a8f3c9c27ec4055b771c0ee341",
        "53faa7ee457eb9b27be1fd814e42ffe43c8520a0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 29 14:32:21 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 29 14:32:21 2012 -0800"
      },
      "message": "am 2f6107ec: am b64def9a: Merge \"[wfd] Support a low(er) power state by triggering PAUSE/RESUME.\" into jb-mr1.1-dev\n\n* commit \u00272f6107ec8e67eea1f73b9558a5ad34caec52867f\u0027:\n  [wfd] Support a low(er) power state by triggering PAUSE/RESUME.\n"
    },
    {
      "commit": "bf4950aa265ec7b54777d122b27037461638af0f",
      "tree": "5ef033aaa0bbf12936d00ddf64a7c6d242b4206f",
      "parents": [
        "7a7ea64c1daf025eafaba49617ee47add296254a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 16 10:38:11 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 29 10:33:51 2012 -0800"
      },
      "message": "[wfd] Support a low(er) power state by triggering PAUSE/RESUME.\n\nChange-Id: Ibe42bfa73816bbfeb7e652d435254d0171b89727\nrelated-to-bug: 7638150\n"
    },
    {
      "commit": "1bfcf04b27bdd5320ab70b74285b855380e83f26",
      "tree": "062f450ff86fc4732dc78437ef0adbdbab6dc877",
      "parents": [
        "72421521fd06787a407d06966e11f17b86900d2a",
        "61c195615176903bb077a10d6b88ba112fefa250"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Nov 28 09:44:19 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 28 09:44:19 2012 -0800"
      },
      "message": "am 7b7f17dc: am b7c8e918: Add support for HLS playlists of type \\\u0027event\\\u0027.\n\n* commit \u00277b7f17dc9b30ff4ecdf0aea9bcfa1c518d4ac1e7\u0027:\n  Add support for HLS playlists of type \u0027event\u0027.\n"
    },
    {
      "commit": "a4c5bc0f18fe272146426ab2eccad6215279c9f3",
      "tree": "9a067b002555730b806f7a86b87a92784ff64fbe",
      "parents": [
        "5ad21fb5686d4d32f61a47eab5a3fd2c4670e32d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 27 15:02:53 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 27 15:50:08 2012 -0800"
      },
      "message": "Add support for HLS playlists of type \u0027event\u0027.\n\nrelated-to-bug: 6870049\n\nSquashed commit of the following:\n\ncommit eee2f3ba6bb7335f4e285632726db85645669929\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 15:02:01 2012 -0800\n\n    Make everything a lot less verbose by default.\n\n    Change-Id: I884d7a7901aa1e7d4ff590f065ca57a79d2af8b3\n\ncommit 6bbdb837ed5bd88008e45efb8faf595e4051ba26\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 14:34:46 2012 -0800\n\n    HLS now properly signals media time changes at discontinuities including\n\n    the start of playback (which may not necessarily be at time 0 if the playlist\n    is of type \u0027event\u0027 and hasn\u0027t completed yet).\n\n    Change-Id: I5ab747d024f9b8d0df72a4e06a12ebb29f62802e\n\ncommit 1555589832b1878a144a976a643e1af4d61f877c\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 14:32:28 2012 -0800\n\n    As part of a time discontinuity, clients of IStreamListener can now\n\n    signal the corresponding media time after the discontinuity, i.e. the first PTS\n    timestamp following the discontinuity will be considered equivalent to the\n    specified media time and media buffers timestamped accordingly.\n\n    Change-Id: Id7db7679b7faa6efd6270620ff52e34e884f3e92\n\ncommit 5c24c605c073a11c426d025b1e7478fc1ad8365a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 13:00:56 2012 -0800\n\n    NuPlayer sources now expose flags() and can announce\n\n    that duration may change (increase) dynamically, in which case duration\n    will be polled at 1 second intervals and communicated to the upper layers.\n\n    Change-Id: I45102909b7a19eed0dda576747e3814d742a0eea\n\ncommit ecb71de8e281e61971a2cd73e7161a97540bc357\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 12:57:47 2012 -0800\n\n    Stop caching duration in MediaPlayer, duration could increase dynamically.\n\n    Change-Id: I7bb2f16c0abe49debdf45c776d2266aa069d7791\n\ncommit 544aec5823e6d7a3e97e15b6b23546616bcd343e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 08:46:28 2012 -0800\n\n    An attempt to add support for \"event\" style HLS playlists.\n\n    Change-Id: I3dfb2e801ecaff8f5d8bdb3a4fca1b18aeeb2c60\n\nChange-Id: I48cf7f65a654d33f2f49ded74f8be22aed9e3b98\n"
    },
    {
      "commit": "5834181d3f168acb8ff4bf3eff1fd1186afb0bd4",
      "tree": "751942479f88b6a87783b8c54c37721c0c4cdfbc",
      "parents": [
        "991012a8b887455cb44df782c49c610bb7cf9ec7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 16 14:31:15 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 16 14:33:57 2012 -0800"
      },
      "message": "Fix a crash when the stop might be called due to some error before start in RTSPSource\n\no related-to-bug: 7507224\n\nChange-Id: Ic8bfec13097b824ba337a01c9b00c98af2a33f43\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": "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": "dcfefde6be8f9f33bbd2b3546f3be946d958d677",
      "tree": "fc085ca88168b58486f942b64516a8008cfe1545",
      "parents": [
        "1baa01a52f24566c134313fade8b19a582654638"
      ],
      "author": {
        "name": "beanz",
        "email": "beanz@marvell.com",
        "time": "Mon Nov 05 09:51:43 2012 +0800"
      },
      "committer": {
        "name": "beanz",
        "email": "beanz@marvell.com",
        "time": "Mon Nov 05 09:51:43 2012 +0800"
      },
      "message": "fix a race condition of MediaPlayerServce::Client::mClient\n\nthere will be race condition between mClient.clear in MediaPlayerServce::Client::disconnect method\nand c\u003dclient-\u003emClient in in MediaPlayerServce::Client::notify method\n\nChange-Id: I767294c4cb864c08e9c0e9f23d6d304a39016205\nSigned-off-by: beanz \u003cbeanz@marvell.com\u003e\n"
    },
    {
      "commit": "faa4420344216ccbad15a49aa7c1cd6141532fcb",
      "tree": "7ccb42a315e7c90e4eb124f0b87945c842f600da",
      "parents": [
        "f84d5761c5f12bb75af492de27d9bc5491e5667d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 30 10:51:39 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 30 10:51:39 2012 -0700"
      },
      "message": "Remove obsolete references to libmedia_native\n\nBug: 6654403\nChange-Id: I3993d62987cf0dd85db10bf002a5cce53d4f01bd\n"
    },
    {
      "commit": "24a0ab1e9fef276abb830d6e411e41448c766cc7",
      "tree": "acc7832d03aeafd484b40251a73f4c02d9a3d2e2",
      "parents": [
        "a14f5265b82bb7da94c5b478044e00e1a3ff6d3f",
        "0342e9a31648dca41cff257e4c2016062ea27596"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 12 11:10:36 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 12 11:10:36 2012 -0700"
      },
      "message": "am 954f6afe: am b4a55269: Fix some missing checks against missing codecs\n\n* commit \u0027954f6afed22e8a723ddb9a6448c14bce4e008a9c\u0027:\n  Fix some missing checks against missing codecs\n"
    },
    {
      "commit": "6ebb67493075ecc817207bc0ca0305cde64b5c3b",
      "tree": "919f267f8e904017ce955424832d29ea4c586e11",
      "parents": [
        "411ddcc42a17abf4173345a992e4cd6575751739"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 11 20:28:50 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 11 20:28:50 2012 -0700"
      },
      "message": "Fix some missing checks against missing codecs\n\no related-to-bug: 6971073\n\nChange-Id: Ia6d926663231f9a9ef31c82c85c70595c4a30ebe\n"
    },
    {
      "commit": "3d6354a33fb8524440d0bf8af203e37d52a34663",
      "tree": "e5694a7681f875797e0ee6aabc502b2a9a1475d4",
      "parents": [
        "bf207216dd170027d5feb57a7d5b9e463a7d9802",
        "82fc953ffbb04f1d5b0decdf1d7799f35b439b00"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 28 00:34:13 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 28 00:34:13 2012 -0700"
      },
      "message": "am d398c272: am ecc8db5e: Merge \"Cleaner Wifi Display shutdown process, avoid crashing HDCP on exit.\" into jb-mr1-dev\n\n* commit \u0027d398c2724c8a942961d13245a4669db0555080e4\u0027:\n  Cleaner Wifi Display shutdown process, avoid crashing HDCP on exit.\n"
    },
    {
      "commit": "be996645b3118b84edf26fc05cc5e4ff56c163b5",
      "tree": "d86c9c4d54bb8d7fbbdfbddb9465b82fdc46ec0e",
      "parents": [
        "af5f02cdd48b8c93a1976c8e078586216d96bdc0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 27 14:13:05 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 27 14:25:18 2012 -0700"
      },
      "message": "Cleaner Wifi Display shutdown process, avoid crashing HDCP on exit.\n\nChange-Id: Ie54ee3edd672ec629360b4ecc5df2f85ecbaa45f\nrelated-to-bug: 7247584\n"
    },
    {
      "commit": "9234c190bf5cc94e677f915236dd2ebbfa35aac5",
      "tree": "4a84a0020102ac99b2bfa66bd3ff00fa40459085",
      "parents": [
        "2256c700652c5b9e26dfd3090709ce149549b5ae",
        "0476bd68ae9026f45fa45052dfae8719a9cb91a1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 21 12:45:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 21 12:45:03 2012 -0700"
      },
      "message": "am 32cc2d3a: am 207e1854: Remove legacy code and APIs in wifi display related code.\n\n* commit \u002732cc2d3a18cad9de4587ff6904b2b7e4d338db06\u0027:\n  Remove legacy code and APIs in wifi display related code.\n"
    },
    {
      "commit": "45d76bb6c8f15335f89c287dbae04cc38f79d0a8",
      "tree": "baeb6a730e64585729fec469290541b38da1199c",
      "parents": [
        "8fdd88b073275812ccd2279e3f657a4b5960bfa3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 20 16:00:17 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 21 09:24:08 2012 -0700"
      },
      "message": "Remove legacy code and APIs in wifi display related code.\n\nChange-Id: Ia010e7a00534f9356b3247369d0ffd65591d91aa\n"
    },
    {
      "commit": "ab92759a5c0b19042e8732b4e525341dc17a03c6",
      "tree": "d620382806e04d4ef0acc5f54534662bf9ca5b73",
      "parents": [
        "819f26b8fc26a77ca36e5c7c335783b26b68786c",
        "7a923bac15ff40eec911d4484d5496671f39009e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 20 12:49:07 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 20 12:49:07 2012 -0700"
      },
      "message": "am 858882f2: am b88516c4: Merge \"HDCP module binderized\" into jb-mr1-dev\n\n* commit \u0027858882f2e6bd18d3da1db5cd8731fe3691628fb1\u0027:\n  HDCP module binderized\n"
    },
    {
      "commit": "59451f8ced48874427ff1550391c4f3cd2ba2e35",
      "tree": "157c7a66a42dee041738de4cd88c9b185ad686bd",
      "parents": [
        "d5a9ae029b50678de3b468d8324728a73ff5b0aa"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 18 10:36:32 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 19 09:28:08 2012 -0700"
      },
      "message": "HDCP module binderized\n\nChange-Id: I866768b1e3f3b232f1934a35b65f66befc12f3f6\n"
    },
    {
      "commit": "482989a7c92215953f25293c92b3d0fe2e87cb41",
      "tree": "ca3c9b5b8dc18051d001a8c9b172150eabda7306",
      "parents": [
        "628335809726683ce13d49d51ab51ef984933a13",
        "d71866b18e387ddcff6ff8128866ecae45ec1606"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 17 14:44:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 14:44:15 2012 -0700"
      },
      "message": "am 9568b4cd: am 376074ed: Fixed a native crash due to deref of a NULL pointer\n\n* commit \u00279568b4cdc8d2a7896e9c031f2b6cdf6f18210de1\u0027:\n  Fixed a native crash due to deref of a NULL pointer\n"
    },
    {
      "commit": "9f235b58cd6dbee74d091e437d520306977daac9",
      "tree": "58e1f1953719d5ff164fb5184999ae01aa1ae59b",
      "parents": [
        "482136a5f977056eeffe2aa58d31ce395be562a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 14 15:34:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 14 15:34:35 2012 -0700"
      },
      "message": "Fixed a native crash due to deref of a NULL pointer\n\nWe only checked the mNativeWindow against NULL, but did not check the native window object itself against NULL.\n\no related-to-bug: 7153683\n\nChange-Id: I430d344dc09a2fc337bf51001551627056713773\n"
    },
    {
      "commit": "593fecf6c18d060dd659d3995da505a8857b5254",
      "tree": "39c534b6b0a609b2cde7aa6b78f76a1f8060bd69",
      "parents": [
        "bb5027b0d47a6d46bb401a27b8fa35dbbbad5d0f",
        "d1b04f79d33079d1961c2f163f05ac5456d5839e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 12 17:02:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 12 17:02:32 2012 -0700"
      },
      "message": "am b030d656: am e891a788: Merge \"Various improvements to the wifi display implementation.\" into jb-mr1-dev\n\n* commit \u0027b030d65670fa236e09f91f5ef62ac6863d6600d4\u0027:\n  Various improvements to the wifi display implementation.\n"
    },
    {
      "commit": "eb29bae4b8ae270e656b6fcd5216fa86e9f1d8d0",
      "tree": "199594f6f59d7469833cfca70b9ba0dad72f6215",
      "parents": [
        "fa030e2bde158d357ea92eb10f2206ca76eb7e04"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 12 10:19:54 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 12 10:19:54 2012 -0700"
      },
      "message": "Various improvements to the wifi display implementation.\n\nUsing a MediaPuller now, audio and video on their separate threads.\nNo more flushing the RTP stream on audio tracks, since it wastes too much\nof a full size UDP packet.\n\nChange-Id: I53346b4aea739c3142da13bd179428503a3c98b0\n"
    },
    {
      "commit": "c1262ab36337a3b25b8a62b3902b965c3993dd68",
      "tree": "287d81b2beb4860c952c3d67f75cb7355d86f1ad",
      "parents": [
        "206dca9986f04e4285a33a84fbfa60e88997ab2c",
        "f5f44ebe406101079591617161b9cb82c9b6bfee"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Sep 10 17:10:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 10 17:10:35 2012 -0700"
      },
      "message": "am df00fc2d: am b019250d: Add a permission for controlling wifi display.\n\n* commit \u0027df00fc2d9ac02cde6df75b76a93929396a1f696b\u0027:\n  Add a permission for controlling wifi display.\n"
    },
    {
      "commit": "aba33d58ef6fe33210cc384b05cadf6ab8bac077",
      "tree": "5b37b6e07ade284e4682c718c58b07779afa1c5b",
      "parents": [
        "d280f6ff11e110b7435e6e6c7a4075285a76bab6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 17:38:58 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 07 17:39:35 2012 -0700"
      },
      "message": "Add a permission for controlling wifi display.\n\nChange-Id: I321b6c1a0223e0c3d5df04fde7a13ab91c08c7bc\n"
    },
    {
      "commit": "89710de8a149433f8258d779806c294b183edbe7",
      "tree": "ab9b3c9d7d83eb15bf5b4f0ec02a82d5a8a63d28",
      "parents": [
        "e3ae0a9e4d4469e6d98ec9bea04206be5d01bf30",
        "850bc1455845e1e1c578903dc3a70a6c48937cf7"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Sep 06 12:37:21 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 06 12:37:21 2012 -0700"
      },
      "message": "am bdfb0207: am 2e5f22e8: Add a small hook to support gapless in AAH.\n\n* commit \u0027bdfb020790f92a6ab055be9a5eda4646ed197ff3\u0027:\n  Add a small hook to support gapless in AAH.\n"
    },
    {
      "commit": "5f7e55ea443c80ef8b6173efd1c2551e07309b0a",
      "tree": "4cd31563d1b3922b7b04ae6ced11eb8c0d918399",
      "parents": [
        "ed68d9acdd5eae0ca6a3a6eebb99c104784707e4"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Aug 24 14:47:25 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Sep 06 12:33:35 2012 -0700"
      },
      "message": "Add a small hook to support gapless in AAH.\n\nChange-Id: Ie07eca6b45142bdd83412ee0e38d732a4c355630\n"
    },
    {
      "commit": "89592fc7216809d7a9ca34cc2ed25d95a20687c8",
      "tree": "5096d79c743a1e60fa7287ed7327d55d1d8fce0b",
      "parents": [
        "e7456f8d6bfe0bd1df2bc244b7720c6eb5a0a10e",
        "fb39283da575455aa17631ca07fb9b3d6d6197a3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Sep 06 10:18:42 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 06 10:18:42 2012 -0700"
      },
      "message": "am 3e295bd2: am 49c74da1: Merge \"Update remote display API.\" into jb-mr1-dev\n\n* commit \u00273e295bd23c7dc4c94960f32465576cee62148d14\u0027:\n  Update remote display API.\n"
    },
    {
      "commit": "56cd317a35a18ba5c40b344f0a5bf436546246a1",
      "tree": "2c3eb9ae3389801959a7679b354f0abb66d8d1b6",
      "parents": [
        "3e2e7a945cf0239b2f021294fc9786958f389ef9",
        "ced24b36bbeed1ddd086a9304a9639c04ffe0962"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Sep 06 10:15:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 10:15:31 2012 -0700"
      },
      "message": "Merge \"Update remote display API.\" into jb-mr1-dev"
    },
    {
      "commit": "d8b796c43dcdf4ece71352dcaa291114a15ad56e",
      "tree": "e179d8ba4e07b9a36bff28b7d78054d3e026cac7",
      "parents": [
        "4f7cd0e6f26fba2a6303a66847fdfaa2bd72fe57",
        "202389a3c67e35aff0e93222430a190cb924fdb9"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 19:23:36 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 19:23:36 2012 -0700"
      },
      "message": "am 2ae8964e: am 74262b57: Merge \"To support .mxmf which is specified in Android CDD.\" into jb-mr1-dev\n\n* commit \u00272ae8964ecd5f2b9668425394bd651bf2e715b33e\u0027:\n  To support .mxmf which is specified in Android CDD.\n"
    },
    {
      "commit": "19b247a8531b27cd32df84fc90f87a21e011d7a6",
      "tree": "d34d30f142a1746058ce3a07472bcb83710e7bdd",
      "parents": [
        "ccd07716d105125b2eb2f1280b8c3fe9f57e78f3",
        "a6932498a00735c4e438bb9c47478ff166e2d6fd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 19:19:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 05 19:19:23 2012 -0700"
      },
      "message": "Merge \"To support .mxmf which is specified in Android CDD.\" into jb-mr1-dev"
    },
    {
      "commit": "ced24b36bbeed1ddd086a9304a9639c04ffe0962",
      "tree": "d9da77d64098b29ef571a3d6c12c7fe9a6d8e8cf",
      "parents": [
        "28169b107327b5db58877babf6993f0eb109c58a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 05 17:48:03 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 05 17:48:03 2012 -0700"
      },
      "message": "Update remote display API.\n\nRenamed disconnect() to dispose() to emphasize the fact that\nthis method is intended to clean up the IRemoteDisplay\ncompletely, not just temporarily disconnect the current client\n(which might be useful someday).\n\nOther minor tweaks.\n\nChange-Id: I1209639eb0cd8af09c724206642d7e52aab48257\n"
    },
    {
      "commit": "4f7cd0e6f26fba2a6303a66847fdfaa2bd72fe57",
      "tree": "f294a3cb0cc06eb524a02c3ae48fa7ecb8089adc",
      "parents": [
        "e10a187c1dac8e8d282c93a7ce5a44e9e7f2b4fd",
        "2c8eb30c75e9640f0fab6fc388e5b7994fb1651f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 16:30:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 16:30:19 2012 -0700"
      },
      "message": "am dd1a87b3: am 9c6cb7a8: Merge \"Fragmented mp4 extractor\" into jb-mr1-dev\n\n* commit \u0027dd1a87b391679eea06b819b50924fa822599a95e\u0027:\n  Fragmented mp4 extractor\n"
    },
    {
      "commit": "ccd07716d105125b2eb2f1280b8c3fe9f57e78f3",
      "tree": "2c5ba74d5894a575f4100a84c75d7125fc5c7873",
      "parents": [
        "28169b107327b5db58877babf6993f0eb109c58a",
        "1e9ee018c6fa906c99270616456c32f0bb30c9c0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 16:22:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 05 16:22:17 2012 -0700"
      },
      "message": "Merge \"Fragmented mp4 extractor\" into jb-mr1-dev"
    },
    {
      "commit": "1e9ee018c6fa906c99270616456c32f0bb30c9c0",
      "tree": "6428e0c409971ed90ee409efc5776e8c7b7ebb25",
      "parents": [
        "62a1904e6beaa8848eddd2b635053536fbe5e804"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 28 15:09:49 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 14:22:07 2012 -0700"
      },
      "message": "Fragmented mp4 extractor\n\nStill experimental. Set property \"media.stagefright.use-fragmp4\" to true to\nenable.\n\nChange-Id: I210b9c5b5164b5c5eefc31309845ee881ac7db8e\n"
    },
    {
      "commit": "e10a187c1dac8e8d282c93a7ce5a44e9e7f2b4fd",
      "tree": "9673b260608c38e96c1282dcff017f76282e7bc3",
      "parents": [
        "22ffeeb3a4466fac728f755b26efd5b361418a49",
        "a7d3b8e1f4e10520e2040f1286df6bcda50da665"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 05 10:47:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 10:47:48 2012 -0700"
      },
      "message": "am aae9c084: am 0b73d473: Expose an IRemoteDisplay to trigger wifi display connections setup and feedback.\n\n* commit \u0027aae9c08476b44192fe3506ae26a8466da8b4251a\u0027:\n  Expose an IRemoteDisplay to trigger wifi display connections setup and feedback.\n"
    },
    {
      "commit": "22ffeeb3a4466fac728f755b26efd5b361418a49",
      "tree": "70937d253098892ec4387afe2eaf12e955e36dc9",
      "parents": [
        "91a5da5364c840d2ab596c186b9fb55d87b466de",
        "9ec6c0ec7a58c2fca62370258322af18545b6afd"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 05 10:47:47 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 10:47:47 2012 -0700"
      },
      "message": "am 5bf9a8eb: am e1045960: Implement remote display service stubs.\n\n* commit \u00275bf9a8eb914723cbb5bf4d70b8b48c37a1b6e82a\u0027:\n  Implement remote display service stubs.\n"
    },
    {
      "commit": "28169b107327b5db58877babf6993f0eb109c58a",
      "tree": "0380f4ee177c06bf8b6d94516ec04f90563b5fba",
      "parents": [
        "2013a54981d4ffb036dff279b88cc9f08c0ee1c2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 05 10:26:52 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 05 10:26:52 2012 -0700"
      },
      "message": "Expose an IRemoteDisplay to trigger wifi display connections setup and feedback.\n\nChange-Id: I7602cda0e38073c9f0e63fa4de238ca0d4b4ce8e\n"
    },
    {
      "commit": "2013a54981d4ffb036dff279b88cc9f08c0ee1c2",
      "tree": "0be5853ec89f5d075763a8228513a6e98a27a30e",
      "parents": [
        "62a1904e6beaa8848eddd2b635053536fbe5e804"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 04 21:38:42 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 05 08:47:36 2012 -0700"
      },
      "message": "Implement remote display service stubs.\n\nChange-Id: I582ed000026bba6d116db8304e15a3c52f8a9a01\n"
    },
    {
      "commit": "a6932498a00735c4e438bb9c47478ff166e2d6fd",
      "tree": "c241ec13910627c848be3731b274a1291763bc43",
      "parents": [
        "d99d678228fee4baa74d1bae463a59cc0aa13cd5"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Sep 05 19:37:13 2012 +0900"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Sep 05 19:37:13 2012 +0900"
      },
      "message": "To support .mxmf which is specified in Android CDD.\n\nBug: 7082658\nChange-Id: I21269d72d1d21627c6adb2e6fbcb078d0eda6020\nTested: checked MediaScanner scans .mxmf and Music app plays .mxmf file.\n"
    },
    {
      "commit": "d7a61ad1e9ad1e59b5ef5d8f6e37da400c01d01c",
      "tree": "1ce0c2be6f4ac96499707d1338516d63a5b6f145",
      "parents": [
        "09359d4e7b9186eec9ce744257a8d1dcb6cbbf15",
        "1f3cf60ccb8c7f0b8ab98d2f46ef67a50a98fce0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 04 19:14:57 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 04 19:14:57 2012 -0700"
      },
      "message": "am 05e73de0: am 0d268a3c: Add setVideoScalingMode support to NuPlayer\n\n* commit \u002705e73de0664765a144414e73d4fcf4e1caf3c0f3\u0027:\n  Add setVideoScalingMode support to NuPlayer\n"
    },
    {
      "commit": "53a2d13945f9df97f608b669dbd27ce6a27b9de6",
      "tree": "ca1ffa7cc37027eeaaf8002e9eac6797f06b3261",
      "parents": [
        "8a61c22ecc2a38fffe978be210fe3f0a70efb71c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 31 12:18:27 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 04 19:00:50 2012 -0700"
      },
      "message": "Add setVideoScalingMode support to NuPlayer\n\no related-to-bug: 7089195\n\nChange-Id: Ic30d9312673f2d5837c779e023ac64468ecd4951\n"
    },
    {
      "commit": "09359d4e7b9186eec9ce744257a8d1dcb6cbbf15",
      "tree": "e2139bf7738f4cd4d942e9522599ecb5084e4eea",
      "parents": [
        "23ed3d9cd183c845bed846ecf050aa8cbd6f4c0f",
        "04b1b910664c87b4bd593176ba59e43c5ddfd162"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 11:27:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 04 11:27:30 2012 -0700"
      },
      "message": "am eca95af8: am fbe9d81f: Support for acting as a wifi display sink.\n\n* commit \u0027eca95af88949ec76533927f39118ac57f4f01911\u0027:\n  Support for acting as a wifi display sink.\n"
    },
    {
      "commit": "8a61c22ecc2a38fffe978be210fe3f0a70efb71c",
      "tree": "badbf524da8547d01e134b9875f6d3d9ae8ddb74",
      "parents": [
        "ebb5047fca788f89188158cc764fbb5ad2321f7a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 14:05:27 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 10:41:49 2012 -0700"
      },
      "message": "Support for acting as a wifi display sink.\n\nChange-Id: I0beac87025b93c60164daa865c89f16b72197a47\n"
    },
    {
      "commit": "23ed3d9cd183c845bed846ecf050aa8cbd6f4c0f",
      "tree": "8771365c6443d15136ace93e8cdb984cee278316",
      "parents": [
        "31b7c57a37e1c682591764e04f964112da65c74b",
        "b1244f55fcc80d638e8c3d6791a41050ba1a600d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 09:35:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 04 09:35:52 2012 -0700"
      },
      "message": "am 76fd1ea5: am 7323115c: Merge \"Improvements to our MPEG2 Transport Stream parser\" into jb-mr1-dev\n\n* commit \u002776fd1ea58835094e84d36f2353d1390c24d14bfc\u0027:\n  Improvements to our MPEG2 Transport Stream parser\n"
    },
    {
      "commit": "ebb5047fca788f89188158cc764fbb5ad2321f7a",
      "tree": "e0b07ffdb053a68d741f66301a18200bda1bf7b5",
      "parents": [
        "d99d678228fee4baa74d1bae463a59cc0aa13cd5",
        "5205152968957c51b597ddeabe6a5e17b2a84e38"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 09:31:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 09:31:12 2012 -0700"
      },
      "message": "Merge \"Improvements to our MPEG2 Transport Stream parser\" into jb-mr1-dev"
    },
    {
      "commit": "31b7c57a37e1c682591764e04f964112da65c74b",
      "tree": "08638b9fbd343e29253c9aad6c795e58f9688d95",
      "parents": [
        "0332f980af03bc36b82267be90d12a590d273f8a",
        "3b84704b890e5f588464ba7ba3b98c5bed0bc50a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 31 14:46:11 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 31 14:46:11 2012 -0700"
      },
      "message": "am 4adf4c6c: am 31238033: Merge \"Move fragmented mp4 parser to libstagefright\" into jb-mr1-dev\n\n* commit \u00274adf4c6cb90c2bdd2aa46179fd718cbc2f1dd067\u0027:\n  Move fragmented mp4 parser to libstagefright\n"
    },
    {
      "commit": "d99d678228fee4baa74d1bae463a59cc0aa13cd5",
      "tree": "54eee50c7acff44904946a6282f3eba272438815",
      "parents": [
        "3e76a27a5e57435369794016494093b5b1b29513",
        "4ecce5026fe3235e783766dcb9fc2b59405da08f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 31 14:41:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 14:41:47 2012 -0700"
      },
      "message": "Merge \"Move fragmented mp4 parser to libstagefright\" into jb-mr1-dev"
    },
    {
      "commit": "4ecce5026fe3235e783766dcb9fc2b59405da08f",
      "tree": "4816008e7706cbbddb25eacc6249bc0f33ebfda6",
      "parents": [
        "314079efa77c07255b2a2794eba470fccd1541fb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 31 11:07:37 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 31 14:14:22 2012 -0700"
      },
      "message": "Move fragmented mp4 parser to libstagefright\n\nand rename it from Parser to FragmentedMP4Parser\nChange-Id: I986f50d0c5c93648aac675d6160e18623b031541\n"
    },
    {
      "commit": "5205152968957c51b597ddeabe6a5e17b2a84e38",
      "tree": "e076568dda29ab06a1514118ed3093368603f519",
      "parents": [
        "b2562f6faf7b1061f617586801597e0b6b4400b5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 13:55:24 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 13:55:24 2012 -0700"
      },
      "message": "Improvements to our MPEG2 Transport Stream parser\n\nVerifies the continuity counter\nParses and associates PCR time with streams\nAllows for a absolute time anchor to be signalled via discontinuity.\n\nChange-Id: I4bc88c78382c9cc6380f28df584cc6c254e0a8f9\n"
    },
    {
      "commit": "2444800d00366ce7a2bf69832d03314f6d817ff7",
      "tree": "f7b522eedfe5e7acbff818938b6c5f6e88846aa2",
      "parents": [
        "833084b6ed27476d75cc51083cf785aaf5a006aa",
        "fbb83b2db6a3c30bd0756cdba1c223ea09495c21"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 13:12:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 31 13:12:12 2012 -0700"
      },
      "message": "am 8d0189dc: am 61356671: Merge \"Add support for mpeg2 transport streams to the RTSP implementation.\" into jb-mr1-dev\n\n* commit \u00278d0189dc829dc87a74ff91eb0c067dc291ff59c3\u0027:\n  Add support for mpeg2 transport streams to the RTSP implementation.\n"
    },
    {
      "commit": "49694688c82214f5fd9e969e177c9e126a240a26",
      "tree": "8df0b8db345152532c6b064ee44474fedae18581",
      "parents": [
        "b2562f6faf7b1061f617586801597e0b6b4400b5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 10:27:46 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 10:27:46 2012 -0700"
      },
      "message": "Add support for mpeg2 transport streams to the RTSP implementation.\n\nChange-Id: I409d7133a53a71e62523b1acc2b03302fcf824a5\n"
    },
    {
      "commit": "b26fdd2d8073b3758b68c04c28923071d58e564a",
      "tree": "24a7a80a943e0fb2919723a5fa8d13aa1520ffa4",
      "parents": [
        "b0dc8b57c7cc39a057170a0d1e5842bd866b1775",
        "10ad9812b63c0ff8b37c7199595103533398a12b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 30 15:16:55 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 30 15:16:55 2012 -0700"
      },
      "message": "am 27a78751: am 5dcc2c98: Merge \"Only run the wifi display RTSP server on demand, and only on the wifi direct\" into jb-mr1-dev\n\n* commit \u002727a787512ff3f9a7ba200bc53f8c688692995748\u0027:\n  Only run the wifi display RTSP server on demand, and only on the wifi direct\n"
    },
    {
      "commit": "ab1bd84889273bc21efdabe5ff6f4633eb918a85",
      "tree": "c7b13774524756c1add0ebf76de25be2ff8244e9",
      "parents": [
        "c869702b6aa0c4af48226c7385eee60a1642761c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 30 14:51:40 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 30 14:51:40 2012 -0700"
      },
      "message": "Only run the wifi display RTSP server on demand, and only on the wifi direct\n\ninterface.\n\nChange-Id: I7d3c44cb79cd40e73499f2d7ccf35c69b628e6d7\n"
    },
    {
      "commit": "2fee05b1f4b08e611d1441fa9f588e758d43d6f4",
      "tree": "85cead583abc825838d1a8034e8f8f130e05a7fa",
      "parents": [
        "5e3514e12cb94a2047cec1ea508383896787d4cf",
        "e2b88f99ba36380fcd1e013a6e22ad2d81cfcccc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 15:34:11 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 29 15:34:11 2012 -0700"
      },
      "message": "am 544b67a0: am d8ee4e56: Merge \"Initial checkin of support for acting as a wifi display source\" into jb-mr1-dev\n\n* commit \u0027544b67a04b4289aaafa852cbab54abf1f3d6a5bf\u0027:\n  Initial checkin of support for acting as a wifi display source\n"
    },
    {
      "commit": "a2c31a786cfea83f4028c4c5ae00386ae96542e9",
      "tree": "0bc0466c8ad8e92b52c149b50437129877c841e3",
      "parents": [
        "2231a6d809344ad1e5a01b974cde498e54eed7ba",
        "35213f1420c669f43314cb75eadea450d21a75cb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 15:29:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 15:29:11 2012 -0700"
      },
      "message": "Merge \"Initial checkin of support for acting as a wifi display source\" into jb-mr1-dev"
    },
    {
      "commit": "35213f1420c669f43314cb75eadea450d21a75cb",
      "tree": "6869bbe05a695fbb1df99b339e869652142ed3fb",
      "parents": [
        "f8b8f6f8738b9780067e9e56bac8c1de9449b94c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 11:41:50 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 15:06:57 2012 -0700"
      },
      "message": "Initial checkin of support for acting as a wifi display source\n\nChange-Id: I08f17efa0c7d007e17408feb7d4fbef0a19f531a\n"
    },
    {
      "commit": "5e3514e12cb94a2047cec1ea508383896787d4cf",
      "tree": "f066fc9678c6a94f1c8501bbd67115e8cfbfed9d",
      "parents": [
        "aead7c4b6b71759c67b9bdeff0b45b22087cb210",
        "a4d2e5c1d6456cda003f109bf830c450984b2535"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 14:25:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 29 14:25:20 2012 -0700"
      },
      "message": "am f4500233: am f147b722: Merge \"Preliminary support for HDCP as a binder service for wifi display support.\" into jb-mr1-dev\n\n* commit \u0027f45002335606a9edb181814fbdf8d0a4e1468a9d\u0027:\n  Preliminary support for HDCP as a binder service for wifi display support.\n"
    },
    {
      "commit": "9bd5a93ed8b4c4b3361c35dd1acdc3f1f49ede33",
      "tree": "a879e3154cc26be5dd4f3a599ef5bd2974d13976",
      "parents": [
        "f8b8f6f8738b9780067e9e56bac8c1de9449b94c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 11:34:22 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 11:34:22 2012 -0700"
      },
      "message": "Preliminary support for HDCP as a binder service for wifi display support.\n\nChange-Id: Ie0de1c086c629a668d1c7863992eef56fb94157c\n"
    },
    {
      "commit": "fa5f8f5a98d389c7581ac7236a9b5aa60a4f9694",
      "tree": "af0bd42d291b48a64ba5f2603fa20e2e53440fd4",
      "parents": [
        "c604a9297ae6bb68950f21583053211287a4df10",
        "6d000617230e82b9497a88ca0f485e0c16ba4543"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 27 10:18:50 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 27 10:18:50 2012 -0700"
      },
      "message": "am 6d000617: am db7e3856: Merge \"Fixed a potential/rare race condtion in MediaPlayerService::Client::notify() method\" into jb-mr1-dev\n\n* commit \u00276d000617230e82b9497a88ca0f485e0c16ba4543\u0027:\n  Fixed a potential/rare race condtion in MediaPlayerService::Client::notify() method\n"
    },
    {
      "commit": "b8a9825bf0f5c74333b0e4ff5ba7677ac6fd2a25",
      "tree": "4dd56785fc2185f44abff6f257197ca982e4c49b",
      "parents": [
        "96272d57caa39566842795ba1f0605a5a5f72272"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Aug 26 16:13:03 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Aug 26 16:18:11 2012 -0700"
      },
      "message": "Fixed a potential/rare race condtion in MediaPlayerService::Client::notify() method\n\no The mClient could be disconnected before the notify message is sent out. Use\n  a local reference could help resolve this issue.\n\no related-to-bug: 6782035\n\nChange-Id: Ia2047bd7f2666100fed83c6e5417a3bf2e20cd2c\n"
    },
    {
      "commit": "f6520a29781ebf1fa16efc282899fbd0c858a57e",
      "tree": "b20753caf29f6ed4b7cd353b0c32772e2a638bdd",
      "parents": [
        "c0c152f81d9e7374a30f90d7ce576719d318fe98",
        "e171593f9afb2b345257cc8e6599f8da9b3437c3"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Aug 24 09:24:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 24 09:24:41 2012 -0700"
      },
      "message": "am e171593f: am 6de95261: Merge \"Add a missing NULL check.\" into jb-mr1-dev\n\n* commit \u0027e171593f9afb2b345257cc8e6599f8da9b3437c3\u0027:\n  Add a missing NULL check.\n"
    },
    {
      "commit": "cb0b755efc2cd24703f400729994900bf2117f66",
      "tree": "21d73848006bb14b4de9fcfe56fa0a1befd09868",
      "parents": [
        "9a150640a28d3fa5507a590125a6c004681bb221"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Aug 23 17:47:31 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Aug 23 17:47:31 2012 -0700"
      },
      "message": "Add a missing NULL check.\n\nDon\u0027t crash if its time to start the next media player in a media\nplayer chain, but the current player\u0027s client has a NULL mAudioOutput,\nas is the case when the low level player implements\nMediaPlayerHWInterface.\n\nChange-Id: If555da3a46960cbee91ff26e5b1fd05e52c8ef28\n"
    }
  ],
  "next": "bf4c5d9f3bdb6fd3889afdeb0312d54f6f2e8de3"
}
