)]}'
{
  "log": [
    {
      "commit": "25a5c604e5b731430e2134838789b99ab937b7ee",
      "tree": "48f43890d36d30b438877790359471ac6e36d7bb",
      "parents": [
        "7f537b72908d0f51698d70840ac666d69a0c53dd",
        "eae218f0174ac6470b123ec91e6a309af6f8a8c5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 19:57:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 19:57:32 2013 +0000"
      },
      "message": "Merge \"Support \"raw\" packetization in RTPSender.\" into jb-mr2-dev"
    },
    {
      "commit": "7f537b72908d0f51698d70840ac666d69a0c53dd",
      "tree": "93268e859cb93327ff6302dbf14ad7b741ddd41e",
      "parents": [
        "a5e88b0d52c83f76cf4167ff31d6bcb2ebf04621",
        "f165e25696be6babf8db99c780fee804aaf364e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 19:57:21 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 19:57:21 2013 +0000"
      },
      "message": "Merge \"New nettest, a simple TCP connection test to measure\" into jb-mr2-dev"
    },
    {
      "commit": "eae218f0174ac6470b123ec91e6a309af6f8a8c5",
      "tree": "5fee418c2e09c9264dc5d2b993cbce7701b1c6d1",
      "parents": [
        "f165e25696be6babf8db99c780fee804aaf364e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 11:16:39 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 11:16:39 2013 -0700"
      },
      "message": "Support \"raw\" packetization in RTPSender.\n\nChange-Id: I14d59573ee0f57eccc104fea0fb46377476d213d\n"
    },
    {
      "commit": "f165e25696be6babf8db99c780fee804aaf364e6",
      "tree": "3c428af170d8e2e500d5b1e5a072568db9c27bbe",
      "parents": [
        "6e8aec8d185444e52ff0247b266f614c690ded13"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 11:12:24 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 11:12:24 2013 -0700"
      },
      "message": "New nettest, a simple TCP connection test to measure\n\nlatency between two devices exchanging low-bitrate data.\n\nChange-Id: Iac138fa70d2a69bbc86c517c953011c80bed071f\n"
    },
    {
      "commit": "04e46929fc316d77426796435bdf13799798c7a8",
      "tree": "a8bff078c4309eeaaaf175fd801278014634d567",
      "parents": [
        "c44834b77a24c050692bff6181bb603c7388b7f2",
        "6e8aec8d185444e52ff0247b266f614c690ded13"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 18:09:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 18:09:18 2013 +0000"
      },
      "message": "Merge \"Removed rtp timestamp patching hack in ANetworkSession, advertise\" into jb-mr2-dev"
    },
    {
      "commit": "c44834b77a24c050692bff6181bb603c7388b7f2",
      "tree": "125efde8439005a313fb6147a0b5fd5cc75b5a91",
      "parents": [
        "3d34fa7fe4df6fb66215303f721cc87ce4619cdc",
        "80bf5cc27e8f3347897aa29a9c16d7ee83577df2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 18:09:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 18:09:04 2013 +0000"
      },
      "message": "Merge \"Fix adaptive frame rate handling to be non-adaptive unless specified through\" into jb-mr2-dev"
    },
    {
      "commit": "6e8aec8d185444e52ff0247b266f614c690ded13",
      "tree": "bd6646dbe956390f44a159b947a70abe1a3ab7c5",
      "parents": [
        "80bf5cc27e8f3347897aa29a9c16d7ee83577df2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:50:18 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:50:18 2013 -0700"
      },
      "message": "Removed rtp timestamp patching hack in ANetworkSession, advertise\n\ndifferentiated service tags to help prioritize our traffic.\n\nChange-Id: Ibe42df64da272f4bb6b978e46a4ea2efdadfcbc7\n"
    },
    {
      "commit": "80bf5cc27e8f3347897aa29a9c16d7ee83577df2",
      "tree": "2647d804f20eceea5ad5d0c092f467589e38f4c8",
      "parents": [
        "8344844311b852ea7321e914642bd9e57e0d5fb0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:48:50 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:48:50 2013 -0700"
      },
      "message": "Fix adaptive frame rate handling to be non-adaptive unless specified through\n\nadb shell setprop media.wfd.video-framerate adaptive\n\nChange-Id: I452576b62ad465680232b40464977e126616df18\n"
    },
    {
      "commit": "3d34fa7fe4df6fb66215303f721cc87ce4619cdc",
      "tree": "c45baafeb18a5035082e0b12072fcd63f63c219c",
      "parents": [
        "8344844311b852ea7321e914642bd9e57e0d5fb0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:42:23 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:42:23 2013 -0700"
      },
      "message": "Fix a number of warnings in stagefright code.\n\nChange-Id: If3edd00d991851797aeccdfe795a4a405e3a2ea3\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": "e574eecea416c813d539a0977d5393c3ed291a1c",
      "tree": "3d90f6c0e975a2757b8e5108f6ee0f8900c65057",
      "parents": [
        "dde3ae3878c3ebed799dc7422a8df2b28f5f3969",
        "7069bdf24a9e3393479368e83f9009817869c33c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 01 21:40:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 21:40:34 2013 +0000"
      },
      "message": "Merge \"Fix seek in response to OnPrepared() for HLS content\" into jb-mr2-dev"
    },
    {
      "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": "dde3ae3878c3ebed799dc7422a8df2b28f5f3969",
      "tree": "89d638c5bb4dcfa7ff1b4c4adb86300723f05704",
      "parents": [
        "cba6b7dbe6e6d89c00021a0954d8bf60eacefdfa",
        "b133a4cb2a5a310a7461050a2d96537c6ce2415e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 01 21:15:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 21:15:46 2013 +0000"
      },
      "message": "Merge \"ToneGenerator: fix overflow in stopTone\" into jb-mr2-dev"
    },
    {
      "commit": "cba6b7dbe6e6d89c00021a0954d8bf60eacefdfa",
      "tree": "579a9b99765f8852599cfb23a5cbba4a77002431",
      "parents": [
        "d49e54289654ab7d7bda03f019ca4421fe303b05"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:51:35 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:54:40 2013 -0700"
      },
      "message": "MTP: Implement date created field in GetObjectInfo\n\nBug: 8293874\nChange-Id: I6b74fe73362bd4fac34ca8a54e127ae91f82aef9\n"
    },
    {
      "commit": "d49e54289654ab7d7bda03f019ca4421fe303b05",
      "tree": "d434446b2507c779610a7ad6f4119e5b92306307",
      "parents": [
        "2f711486c2b35610fb8e114968263e6660cdb683",
        "7268396ee607804570d3ae5927d672894aa708b1"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Apr 01 17:31:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 17:31:15 2013 +0000"
      },
      "message": "Merge \"stagefright: matroska: don\u0027t crash on parsing error\" into jb-mr2-dev"
    },
    {
      "commit": "2f711486c2b35610fb8e114968263e6660cdb683",
      "tree": "08fd87cdaf842dfc248eecd89721ecfb77e4a24d",
      "parents": [
        "63519f7f74e15f88450263e6f752cc76d094add7",
        "57190e05c9f58e22087a2b8411e4b9ff81a92a63"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 20:54:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 20:54:56 2013 +0000"
      },
      "message": "Merge \"Fix SHUTDOWN after SETUP and before PLAY in wifi display.\" into jb-mr2-dev"
    },
    {
      "commit": "57190e05c9f58e22087a2b8411e4b9ff81a92a63",
      "tree": "3f6802eca2b84cc62d5c887fb8747b20e993861d",
      "parents": [
        "857583fd2ecbeb8696ede1f93b7291449fb2d133"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 13:34:10 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 13:52:09 2013 -0700"
      },
      "message": "Fix SHUTDOWN after SETUP and before PLAY in wifi display.\n\nChange-Id: Ieb8ce1ac3130254839975a3677162b64156735bc\nrelated-to-bug: 8499893\n"
    },
    {
      "commit": "b133a4cb2a5a310a7461050a2d96537c6ce2415e",
      "tree": "b028d58efe0ba899e02da6aa7d7f958e58eafc2f",
      "parents": [
        "857583fd2ecbeb8696ede1f93b7291449fb2d133"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 28 11:58:45 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 28 12:00:34 2013 -0700"
      },
      "message": "ToneGenerator: fix overflow in stopTone\n\nFix overflow in tone duration calculation introduced in\ncommit 681be039.\n\nBug 6607077\n\nChange-Id: Ie12f13701345c2b2d3be0b3c4d71cbfa2394a29b\n"
    },
    {
      "commit": "63519f7f74e15f88450263e6f752cc76d094add7",
      "tree": "ddcb710c06074f2b44b86d6686c5e26a27e1f7cc",
      "parents": [
        "20ffad4da71550cf0cacbb26679990258f1561e2",
        "5e691cd3aed18b79cc7362b6689f67886ce90e56"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 18:21:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 18:21:11 2013 +0000"
      },
      "message": "Merge \"Make sure resume() and flush() are handled appropriately even if the codec\" into jb-mr2-dev"
    },
    {
      "commit": "5e691cd3aed18b79cc7362b6689f67886ce90e56",
      "tree": "7fb405cbae88b0a4c15ed7338f5ed3e58b66a592",
      "parents": [
        "857583fd2ecbeb8696ede1f93b7291449fb2d133"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 11:16:43 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 11:16:43 2013 -0700"
      },
      "message": "Make sure resume() and flush() are handled appropriately even if the codec\n\nis in Idle-\u003eExecuting state.\n\nChange-Id: I16a10791fae0e062a19299732c472cc93e4ed971\nrelated-to-bug: 8347958\n"
    },
    {
      "commit": "20ffad4da71550cf0cacbb26679990258f1561e2",
      "tree": "80b1ab5e2f3dcef82e63b2f3e0f80fc815199644",
      "parents": [
        "b9c438414a620364ee55d6a1524175660df30327",
        "cbfce76bc7cd986cb391101c384d8e89a14328bf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 28 16:15:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 16:15:14 2013 +0000"
      },
      "message": "Merge \"Fix valgrind error in software h264 decoder\" into jb-mr2-dev"
    },
    {
      "commit": "58b193adcd9f0eef290ecbca9a30657163e856ec",
      "tree": "336491803eeb0d2ff18ba0064014ab4e6910c19e",
      "parents": [
        "857583fd2ecbeb8696ede1f93b7291449fb2d133",
        "ad2bb2dd233b7220e29d2dafa3106ad498f3aea3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 28 15:55:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 15:55:38 2013 +0000"
      },
      "message": "Merge \"Fix valgrind error.\" into jb-mr2-dev"
    },
    {
      "commit": "7268396ee607804570d3ae5927d672894aa708b1",
      "tree": "85e57f74f49ee89b49fa83f2100186104f0622d1",
      "parents": [
        "06f4971bc05dc14fb567f3cc794af210c507b14d"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 27 19:04:12 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 27 20:12:49 2013 -0700"
      },
      "message": "stagefright: matroska: don\u0027t crash on parsing error\n\nMatroskaExtractor crashed with an assertion if mkvparser::ParseNext()\nreturned a negative number.  Now handle all error values the same\nway as the EOF.\n\nChange-Id: I173c4f878d692a0cbdb915ad1118d0686249d625\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 8433794\n"
    },
    {
      "commit": "857583fd2ecbeb8696ede1f93b7291449fb2d133",
      "tree": "339da426a159d401daede0ac91d45584d7d56807",
      "parents": [
        "e31881eee441f409cbe6c1e1f32183ee8a64cdf8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 27 12:05:40 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 27 18:12:22 2013 -0700"
      },
      "message": "ToneGenerator: fix truncated tones\n\nThe first DTMF tone after a silent period is truncated.\nThis is because the phone app starts and stops the tone\nwhen the user presses and releases the key.\nThis combined to the fact that the tones use the low latency path\nand that when the output stream exists standby there is a period\nof several milliseconds during which no audio is mixed until the\nstream is \"warmed up\".\nThe result is that much less audio is generated than the actual\nkey press duration.\n\nThe fix consists in storing the tone start time and making sure that\nthe number of samples generated corresponds at least to the time difference\nbetween the tone start and stop commands.\n\nBug 6607077\n\nChange-Id: I070d20dd8600c25a9e5d5a60c1d3313b7917b00d\n"
    },
    {
      "commit": "e31881eee441f409cbe6c1e1f32183ee8a64cdf8",
      "tree": "8bcda6864ea1598c0957ece80b341f448df0b837",
      "parents": [
        "8d012b56cbd49f33841c13aaa5b7b42020de82ed",
        "2af030214e08f76c796365b0f9e1aca3dc14a6ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 28 00:24:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 00:24:50 2013 +0000"
      },
      "message": "Merge \"ToneGenerator: fix stop/destroy concurrency\" into jb-mr2-dev"
    },
    {
      "commit": "cbfce76bc7cd986cb391101c384d8e89a14328bf",
      "tree": "b2321fdd1197fbf42c36dde0c4f4072c93c9a0f5",
      "parents": [
        "ad2bb2dd233b7220e29d2dafa3106ad498f3aea3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 27 16:44:54 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 27 16:44:54 2013 -0700"
      },
      "message": "Fix valgrind error in software h264 decoder\n\nh264bsdNextMbAddress could read past the end of an allocation, which\ncould conceivably result in a segfault if the allocation was at the\nvery end of a page.\n\nChange-Id: Id7a0c5733d66e609f36feb0e15b2d67b9bbc0b4d\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": "2af030214e08f76c796365b0f9e1aca3dc14a6ef",
      "tree": "253671646e0ec7e5a18cb570df92f35ba4991cd0",
      "parents": [
        "db372594bf27390d2bee089e35c5fb8f67370026"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 16:37:19 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 16:37:19 2013 -0700"
      },
      "message": "ToneGenerator: fix stop/destroy concurrency\n\nThere is a problem if the stopTone() method is called\nfrom two different threads (for instance if the destructor is called\nwhile stopTone() is waiting for the audio callback to finish).\n\nIn this case, the second call to stopTone() will not wait for the\ncondition to be signaled and call clearWaveGens() while the callback\ncan still be active, thus causing a crash.\n\nThere is a similar problem in case of concurrent calls to startTone()\nand stopTone().\n\nThe fix consists in making sure that stopTone() always waits for call\nback completion or timeout and exits before calling clearWaveGens()\nif a concurrent start request is detected.\n\nBug 8163071\n\nChange-Id: I9ddb4390407701dcad5bf83660fd9903f0d72268\n"
    },
    {
      "commit": "c9e58fcf57d865e6c82fdd4bf49d97f89203b2e4",
      "tree": "a1da4a616d4ad3eab41082c5ff52249204072ef4",
      "parents": [
        "db372594bf27390d2bee089e35c5fb8f67370026",
        "4646d5756c06e896f9f8489fa07cd14f958b2f84"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 21:57:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 21:57:28 2013 +0000"
      },
      "message": "Merge \"Adapt frame rate instead of keeping that constant and tweaking bitrate\" into jb-mr2-dev"
    },
    {
      "commit": "4646d5756c06e896f9f8489fa07cd14f958b2f84",
      "tree": "374474bc7b660baf19e3b619f9c112b955fe942b",
      "parents": [
        "190cdbab6ba24519d6b5e8bec6c2c74e6650e284"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 13:52:43 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 14:51:36 2013 -0700"
      },
      "message": "Adapt frame rate instead of keeping that constant and tweaking bitrate\n\nChange-Id: I889abbbe1237e1a8fdd7135cdc91a2e9728ff39b\n"
    },
    {
      "commit": "db372594bf27390d2bee089e35c5fb8f67370026",
      "tree": "f1f73f399cab41da6a204177610f341e0157a63e",
      "parents": [
        "190cdbab6ba24519d6b5e8bec6c2c74e6650e284"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 12:25:30 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 12:25:30 2013 -0700"
      },
      "message": "ToneGenerator: fix AudioTrack pointer init\n\nThe pointer to AudioTrack should be initialized before\nearly return from ToneGenerator constructor because\nit is tested by the destructor.\n\nBug 8140963\n\nChange-Id: I9a7dfb60ba162b75dfaa5630ab7fc9485afd0074\n"
    },
    {
      "commit": "190cdbab6ba24519d6b5e8bec6c2c74e6650e284",
      "tree": "515d0a75f7bf43b802fb3247f3ce86efa7526af8",
      "parents": [
        "27a14b22e03dbd677e100f273e359a0daf2e79c6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 10:19:24 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 10:19:24 2013 -0700"
      },
      "message": "Identify network servers and clients with a OS version related string\n\nand put the logic to create that string in one location instead of many...\n\nChange-Id: I1f729f2e7376cd3b45eea0e48f7bd10084b41b39\n"
    },
    {
      "commit": "27a14b22e03dbd677e100f273e359a0daf2e79c6",
      "tree": "4fe40931fd620cb597774e30a3489a6169df67bb",
      "parents": [
        "bbef2b3f42de20c7d2a920de62d3d1eca40e054f",
        "dca73b8fe8fa4d991e1a78c02f1939aaeb673cc1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 16:08:49 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 16:08:50 2013 +0000"
      },
      "message": "Merge \"In \"special\" mode we now establish a UDP RTCP channel in addition to the\" into jb-mr2-dev"
    },
    {
      "commit": "bbef2b3f42de20c7d2a920de62d3d1eca40e054f",
      "tree": "b94c370746e62ef79eaffeba51c32bf7746359c9",
      "parents": [
        "4d6f89052289bd7170238c8797b2ee19115b7626",
        "3beec60725cf0e5cf8e365d6c85928160c2cb75e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 00:27:06 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 00:27:06 2013 +0000"
      },
      "message": "Merge \"ToneGenerator: optimize silent tone\" into jb-mr2-dev"
    },
    {
      "commit": "dca73b8fe8fa4d991e1a78c02f1939aaeb673cc1",
      "tree": "8f09f89d5a81cc38683193b48ec5baf039590506",
      "parents": [
        "d3d9263ce5e10220552026253d0e205986e82490"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 15:46:52 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 16:20:26 2013 -0700"
      },
      "message": "In \"special\" mode we now establish a UDP RTCP channel in addition to the\n\nTCP RTP channel and provide feedback on the latency of arriving packets from\nthe sink back to the source. This information is then used to throttle\nvideo bitrate.\n\nChange-Id: Ic589a3cb65e4893a3ff67de947da6063d32a1c6e\n"
    },
    {
      "commit": "4d6f89052289bd7170238c8797b2ee19115b7626",
      "tree": "aabe752fde8393983e771a9391ff0f8022c0ce77",
      "parents": [
        "189168155e41731ac2624691172edb18e94879d6",
        "d3d9263ce5e10220552026253d0e205986e82490"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 22:46:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 22:46:43 2013 +0000"
      },
      "message": "Merge \"Get rid of TunnelRenderer\" into jb-mr2-dev"
    },
    {
      "commit": "3beec60725cf0e5cf8e365d6c85928160c2cb75e",
      "tree": "50ff2187d09558f1b6888be545ab2c8274091f18",
      "parents": [
        "cbb2aad7a8aced67d2d97e03d8cd78b1a843290c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 25 14:38:10 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 25 14:38:10 2013 -0700"
      },
      "message": "ToneGenerator: optimize silent tone\n\nDo not create an AudioTrack and start playback when a silent\ntone is requested to ToneGenerator.\n\nBug 7946399\n\nChange-Id: Ib9282871a56f7a862af7d1504ce3fbd7c18e34e2\n"
    },
    {
      "commit": "d3d9263ce5e10220552026253d0e205986e82490",
      "tree": "816f9f4886b09f6609fa27ba37cec1fceaa2a659",
      "parents": [
        "6bb4d7f084c7e2a6d8e804519ad786c519b74d0d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 14:15:24 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 14:15:24 2013 -0700"
      },
      "message": "Get rid of TunnelRenderer\n\nChange-Id: I40dc00e2e689d7a6b8717ce524016c2948229807\n"
    },
    {
      "commit": "189168155e41731ac2624691172edb18e94879d6",
      "tree": "fa1d639ed18a094281acc1000e58c68b57b5c455",
      "parents": [
        "900fecc9d66bda71f428a4d3cebc1fee14916301",
        "6bb4d7f084c7e2a6d8e804519ad786c519b74d0d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 20:43:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 20:43:00 2013 +0000"
      },
      "message": "Merge \"Misc debugging support and handling of latency changes.\" into jb-mr2-dev"
    },
    {
      "commit": "6bb4d7f084c7e2a6d8e804519ad786c519b74d0d",
      "tree": "3f4080860237f30f838f88fe250c8cca4328e2e5",
      "parents": [
        "cbb2aad7a8aced67d2d97e03d8cd78b1a843290c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 13:25:39 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 13:25:39 2013 -0700"
      },
      "message": "Misc debugging support and handling of latency changes.\n\nChange-Id: I682944f793690842219cf1adbae5e61e061b6b62\n"
    },
    {
      "commit": "900fecc9d66bda71f428a4d3cebc1fee14916301",
      "tree": "62d7ea006812aeb5dad940033b3c2a7c637a74cc",
      "parents": [
        "cbb2aad7a8aced67d2d97e03d8cd78b1a843290c",
        "5beac28a34e557251bd4bbd77a6d9303a69d4319"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Mar 25 20:18:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 20:18:02 2013 +0000"
      },
      "message": "Merge \"Load crypto plugins from additional shared libraries\" into jb-mr2-dev"
    },
    {
      "commit": "cbb2aad7a8aced67d2d97e03d8cd78b1a843290c",
      "tree": "7d47bab47cc5bf6cb0b12baad8e36ec32856621d",
      "parents": [
        "10222ef1c1728e0d623954eec4b9732d39e9e9ec",
        "a64ea768de9c02bce0e545be032dabe8b6c39727"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 17:37:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 17:37:25 2013 +0000"
      },
      "message": "Merge \"Separate the mode of the RTP and RTCP channels.\" into jb-mr2-dev"
    },
    {
      "commit": "a64ea768de9c02bce0e545be032dabe8b6c39727",
      "tree": "5f915fef2c62d376c13669aac409ce22c7a8d0a8",
      "parents": [
        "2247dd0dc60096d1b5a91ccadb5539f0b100c88f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 22 09:56:29 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 10:36:33 2013 -0700"
      },
      "message": "Separate the mode of the RTP and RTCP channels.\n\nI now can use a TCP reliable data channel with a UDP back channel.\n\nChange-Id: Ieb0f0970e3a6da4cff250e9547e181c0c961b9fb\n"
    },
    {
      "commit": "10222ef1c1728e0d623954eec4b9732d39e9e9ec",
      "tree": "8a3c6245cbbaff08bd6733841cd16fbca53085eb",
      "parents": [
        "2247dd0dc60096d1b5a91ccadb5539f0b100c88f",
        "e8ad89f993bb36f9c869f3a71bbcd60949979e1a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 17:24:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 17:24:23 2013 +0000"
      },
      "message": "Merge \"Ensure that the payload in each TS packet is an even multiple of 16 bytes long\" into jb-mr2-dev"
    },
    {
      "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": "e8ad89f993bb36f9c869f3a71bbcd60949979e1a",
      "tree": "99ecc7002b88c6b9a2eb8c09e9799dfae5d14ef0",
      "parents": [
        "aab193b107e302e145b5c3d6e6c87f92ac296186"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 21 11:35:48 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 21 11:35:48 2013 -0700"
      },
      "message": "Ensure that the payload in each TS packet is an even multiple of 16 bytes long\n\n(except for the final TS packet) as specified by HDCP.\n\nChange-Id: I45d49d347c06f5daae310f196d9a8484be0f3ca0\nrelated-to-bug: 7549145\n"
    },
    {
      "commit": "3a29ea87c8fdcd45987bcc9cd2b68961ac971d27",
      "tree": "799496b667decd5c7cffeef3e56e3865b393f357",
      "parents": [
        "aab193b107e302e145b5c3d6e6c87f92ac296186",
        "11287471298193ff51ffb429686f5d63a84a621b"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Mar 20 17:00:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 20 17:00:50 2013 +0000"
      },
      "message": "Merge \"Add the presentation rotation support\" into jb-mr2-dev"
    },
    {
      "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": "42404e895c182df761cbd2473d172e58e763ac89",
      "tree": "0f03a2c0e166bac89ab829035490e9c6de08d534",
      "parents": [
        "ffe25bc8dc76fe437afeaafe679943b33a468986",
        "632177b7446185a0407b7df96f684a9b8b980765"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 19 21:29:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 19 21:29:52 2013 +0000"
      },
      "message": "Merge \"Change ANetworkSession implementation to optionally attach timestamps\" into jb-mr2-dev"
    },
    {
      "commit": "ffe25bc8dc76fe437afeaafe679943b33a468986",
      "tree": "d887257fd94b5f15f8287faf1263cef56dbaf270",
      "parents": [
        "c235df864edded100bc50c4352fd6672f16353b1",
        "16fb8f3954a6a4058953c505a4e7958a1b14c62b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 19 21:29:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 19 21:29:39 2013 +0000"
      },
      "message": "Merge \"Allow for streaming of media files (without recompression)\" into jb-mr2-dev"
    },
    {
      "commit": "6a5c6ed13e3ea1b19835e08624125c9b1505b32c",
      "tree": "f3a83e08b9a6c526ee1b3cbfe02de1ed09382770",
      "parents": [
        "4f4c2655dc3f6fcef766db6e793b1642ad0fd605"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 19 09:57:29 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 19 09:57:29 2013 -0700"
      },
      "message": "Fix valgrind error\n\nThe volume member of the BundledEffectContext class was not being\ninitialized, resulting in uninitialized data being used for calculations\nand control flow.\n\nChange-Id: I84bf9fd478e5d0479e781323b21c7c03dea958c5\n"
    },
    {
      "commit": "632177b7446185a0407b7df96f684a9b8b980765",
      "tree": "112512d2be5f989019edc4055214b93239a54505",
      "parents": [
        "16fb8f3954a6a4058953c505a4e7958a1b14c62b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 18 15:11:40 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 18 15:12:55 2013 -0700"
      },
      "message": "Change ANetworkSession implementation to optionally attach timestamps\n\nto fragments of data to be transferred and to log statistics when data\nis finally submitted to the POSIX layer.\n\nChange-Id: Icbfcac203cdc5c9eac1634e84d34bb380b316a01\n"
    },
    {
      "commit": "16fb8f3954a6a4058953c505a4e7958a1b14c62b",
      "tree": "60744602ca2f690db35d1bc6f0ab97409f073b3b",
      "parents": [
        "b7be24f055426f00fd1ae1af07d5dd40dbcedfe7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 18 11:09:22 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 18 11:09:22 2013 -0700"
      },
      "message": "Allow for streaming of media files (without recompression)\n\nChange-Id: I1de356cc37506ba986822d12a1a59e7b64069e02\n"
    },
    {
      "commit": "11287471298193ff51ffb429686f5d63a84a621b",
      "tree": "b3a4e927f0887148de2cce86b01947c699790d9f",
      "parents": [
        "4f4c2655dc3f6fcef766db6e793b1642ad0fd605"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Mar 12 15:43:56 2013 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Mar 15 16:16:16 2013 -0700"
      },
      "message": "Add the presentation rotation support\n\nbug:7991013\n\nChange-Id: I10cb034b432876c724baa4974efcb3d67b8a99b6\n"
    },
    {
      "commit": "4f4c2655dc3f6fcef766db6e793b1642ad0fd605",
      "tree": "9941428ca273e55c1549c4cd05139f1d12be8b30",
      "parents": [
        "b379c219a8d29c2dfa8778e5fb3da80856c30f7e",
        "3cf59c2fc80a142e19d191a923153374fb3a6c22"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 15 08:59:39 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 15 08:59:39 2013 -0700"
      },
      "message": "am 59ac7b30: am 66abe3ae: Merge \"Fix for crash if no content in DESCRIBE response\"\n\n* commit \u002759ac7b3056db57e5a8e851b7946a181c5fc34852\u0027:\n  Fix for crash if no content in DESCRIBE response\n"
    },
    {
      "commit": "b7be24f055426f00fd1ae1af07d5dd40dbcedfe7",
      "tree": "16452ef5ba382cf37a6f63b49f6a399a1cf85d98",
      "parents": [
        "db57fae81950e32af019b32421b93d204d67e951",
        "5883d53cf8300d8b13a1a6ef3310d72a55e191c0"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Thu Mar 14 22:42:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 14 22:42:44 2013 +0000"
      },
      "message": "Merge \"Make limitations of MPEG4Writer explicit\" into jb-mr2-dev"
    },
    {
      "commit": "db57fae81950e32af019b32421b93d204d67e951",
      "tree": "536ada6a8e064ff9adac72a99859ffd0bb13c916",
      "parents": [
        "26bb1d3702e01779c5ef481c2ad38568d4cc2aa8",
        "0364a91b4230e5b0631f96579e91a0eb2efa48c3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 14 22:02:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 14 22:02:37 2013 +0000"
      },
      "message": "Merge \"Parse SBR extension sample rate\" into jb-mr2-dev"
    },
    {
      "commit": "0364a91b4230e5b0631f96579e91a0eb2efa48c3",
      "tree": "aba5897497b0ceb9a575ed4a1096a9f2d57930ae",
      "parents": [
        "060c68497a9ab59fd71ffbe7c9a7cd3e58489265"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 14 14:50:47 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 14 14:50:47 2013 -0700"
      },
      "message": "Parse SBR extension sample rate\n\nChange-Id: Ib6f6994228a279ee10b389515fba04516c7c42ba\n"
    },
    {
      "commit": "5883d53cf8300d8b13a1a6ef3310d72a55e191c0",
      "tree": "d280c84919e427787e307504606c5a2527124e59",
      "parents": [
        "dbda1c852d68fde2e729ff2f8e85a406da73994b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 12 10:40:20 2013 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Mar 14 10:47:31 2013 -0700"
      },
      "message": "Make limitations of MPEG4Writer explicit\n\no No more than 2 tracks will be supported\no No more than one video and/or one audio tracks will be supported\no Only take video and/or audio track (for instance, no text tracks)\no If there is no track before start() is called, bail out.\n\nAt the same time, make sure the errors from addSource() report to\naddTrack(), not to start().\n\nBug: 7991013\n\nChange-Id: I1ca35aaeb75b5448d75ed2c6c10dd12ecea720ab\n"
    },
    {
      "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": "e2aef54fee88fdeb585a41e1e9834e3d975b263c",
      "tree": "f9d6f0943b8c8baaf898db0c7fc263a767d5ac67",
      "parents": [
        "c93484ab9fdf044fd32f2388a3ce29040d2ba319"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 12 15:55:43 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 13 09:25:52 2013 -0700"
      },
      "message": "Attempt to recover from network stalls by dropping frames on the source side.\n\nChange-Id: I5f9eb4f5acb624a9e5bc0087801fb5a4a9ade35c\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": "c93484ab9fdf044fd32f2388a3ce29040d2ba319",
      "tree": "2fc7e1214a66459a1fb32ab6f87ee292a0a2e4c4",
      "parents": [
        "89bb7e8c9ffdca2b97fce27a166f3edba4be6546",
        "9dffd24e00a1b2abd5e2dcc2366c0327ec3701b8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 12 20:57:57 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 12 20:57:58 2013 +0000"
      },
      "message": "Merge \"Squashed commit of the following:\" into jb-mr2-dev"
    },
    {
      "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": "0c37f9d1320bb87fd242f9425c67dacd6ce20112",
      "tree": "1fa9780cf35055d9c826b4ca124df552e3871bfe",
      "parents": [
        "dbda1c852d68fde2e729ff2f8e85a406da73994b"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Mar 11 15:09:32 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Mar 12 12:27:02 2013 -0700"
      },
      "message": "GraphicBufferSource fixes\n\nVarious fixes:\n- Set the maximum number of BQ buffers we\u0027re allowed to\n  acquire equal to the actual number of codec buffers.  That\n  way we keep the codec as full as possible, and never try to\n  acquire more than we\u0027re allowed from the BufferQueue.\n- Actually use \"end of stream sent\" flag.\n- Name the BufferQueue (for debug messages).\n\nBug 8359403\n\nChange-Id: I3b8c1f679bbebf6a89e623e13ca029eda7f657ba\n"
    },
    {
      "commit": "d32b7b479fad359d7fe779a9c5b4c090cdc14b56",
      "tree": "58977eaeffaccd3630339af19d636da08580eed8",
      "parents": [
        "1a76084dd8918533b00d76fbef15888742f752df"
      ],
      "author": {
        "name": "Xuefei Chen",
        "email": "xuefei.chen@sonymobile.com",
        "time": "Mon Jan 07 16:43:13 2013 +0800"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Tue Mar 12 19:35:23 2013 +0900"
      },
      "message": "Fix for crash if no content in DESCRIBE response\n\nIf DESCRIBE response is received with status 200 but no content,\nMyHandler will still set content data for session description\nparsing. This will cause NULL Pointer crash.\nThis fix checks whether DESCRIBE response has content before\nparsing session description.\n\nChange-Id: I114ae6fd54ce804e61718f62618ca9008425a433\n"
    },
    {
      "commit": "dbda1c852d68fde2e729ff2f8e85a406da73994b",
      "tree": "53bccb4964a3d3b1063237b5b10eeb80eb1b6d2d",
      "parents": [
        "96aeef2b4f51b06cb7f9ccbb04df48b305550b67",
        "afde4e56566af19b36f1fe5e7aa7f226bf1703dd"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Mar 08 23:13:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 08 23:13:08 2013 +0000"
      },
      "message": "Merge \"Clean up the native code to match Java update\" into jb-mr2-dev"
    },
    {
      "commit": "afde4e56566af19b36f1fe5e7aa7f226bf1703dd",
      "tree": "5b0cdd040810962afa5688be1def2eb6babf0de4",
      "parents": [
        "10774e144b3c99afad9a5070ccf50fdb12b5fb4e"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Feb 22 14:32:59 2013 -0800"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Mar 08 14:48:05 2013 -0800"
      },
      "message": "Clean up the native code to match Java update\n\n1. Add flags to match the java side change.\n2. Update the interface.\n\nbug:7991013\n\nChange-Id: I8ffe84c466b2a68e2e1e48b35b78db9e44640265\n"
    },
    {
      "commit": "96aeef2b4f51b06cb7f9ccbb04df48b305550b67",
      "tree": "dde61ece0f1d12a4085280966933f4af318c67d6",
      "parents": [
        "219a9d5b01446b6197bbf3253db666f5445bef8b",
        "13700b08cb1f6405f0b27434d42d03864e00e41f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 07 23:56:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 07 23:56:17 2013 +0000"
      },
      "message": "Merge \"Disable our fancy logic to respect both sink and source\u0027s native formats\" into jb-mr2-dev"
    },
    {
      "commit": "13700b08cb1f6405f0b27434d42d03864e00e41f",
      "tree": "8e3fa3ea5fe91ad190081aa32403ba4309a530ef",
      "parents": [
        "8d4c382db4f89c30a309ffa16bef33930c691681"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 07 10:57:07 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 07 10:57:07 2013 -0800"
      },
      "message": "Disable our fancy logic to respect both sink and source\u0027s native formats\n\nsince it isn\u0027t actually supported by anything in the field.\n\nChange-Id: I9cd038d7631105de26303312ca87c472d67034d4\n"
    },
    {
      "commit": "1c345ebe4f1c7a876826de5112cd325df2faf1d5",
      "tree": "3a0d3d72cd274f0dc5f5b9b35a8e2b66f35bdec1",
      "parents": [
        "8d4c382db4f89c30a309ffa16bef33930c691681"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 07 10:33:20 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 07 10:33:20 2013 -0800"
      },
      "message": "The transport stream HDCP descriptor belongs in the program_info section\n\ninstead of being included in the per-stream descriptors\n\nChange-Id: If5251c0c02456646e2fdbb5e62acf66c356cf13e\n"
    },
    {
      "commit": "8d4c382db4f89c30a309ffa16bef33930c691681",
      "tree": "d3d999474ebca69ef02bde7ff11d96153e7c0f21",
      "parents": [
        "060c68497a9ab59fd71ffbe7c9a7cd3e58489265",
        "ba6218eae3dbcf3f962b3561b26374a214dbf5e2"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Mar 06 17:42:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 06 17:42:23 2013 +0000"
      },
      "message": "Merge \"Correct MediaCodec + Surface behavior\" into jb-mr2-dev"
    },
    {
      "commit": "ba6218eae3dbcf3f962b3561b26374a214dbf5e2",
      "tree": "4b7922c6822c116b67123022fa48489a23724fe7",
      "parents": [
        "a7a5917a064710edea9cfacc8eda44532150e852"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Mar 05 14:31:02 2013 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Mar 05 16:29:55 2013 -0800"
      },
      "message": "Correct MediaCodec + Surface behavior\n\nAssorted tweaks:\n- Allow signalEndOfInputStream() before ACodec is in Executing\n  state (added message to two more states).\n- Return an error if signalEndOfInputStream() is called a second\n  time on the same stream.\n- Require AndroidOpaque color format in createInputSurface().\n- Disallow dequeueInputBuffer() after an input surface has been\n  created (boolean flag in MediaCodec tracks it).\n- Discard input surface when encoder is re-configure()ed (drop\n  OMXNodeInstance\u0027s ref when we go back to Loaded).\n\nBug 7991062\n\nChange-Id: Iff30f3036e14eb5a2f6536910dcf11aba33031ee\n"
    },
    {
      "commit": "060c68497a9ab59fd71ffbe7c9a7cd3e58489265",
      "tree": "468aeb141c52dc4f04f693550316223f255549cd",
      "parents": [
        "7b288449777a071cb800c69468e28b4e5857a690",
        "538f498bbd5a2da51c9037a2689afc97f8bded8f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 06 00:18:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 06 00:18:04 2013 +0000"
      },
      "message": "Merge \"Add template class SingleStateQueue\" into jb-mr2-dev"
    },
    {
      "commit": "7b288449777a071cb800c69468e28b4e5857a690",
      "tree": "db3577e16eb120fc69caf43c1863830ff8715976",
      "parents": [
        "a7a5917a064710edea9cfacc8eda44532150e852",
        "43433111d4adff6a138447dfadf531046497a008"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 05 21:36:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 05 21:36:28 2013 +0000"
      },
      "message": "Merge \"Squashed commit of the following:\" into jb-mr2-dev"
    },
    {
      "commit": "43433111d4adff6a138447dfadf531046497a008",
      "tree": "552d9e4b854783c6d6db73c3e4537504223e5784",
      "parents": [
        "0c57461f2c19f3a271c66f52cf8c9b2a82b13518"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 05 10:56:27 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 05 13:07:19 2013 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit e5919b1f57ea61fa1d380dfdb4e3e832ce73d79d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Feb 27 16:38:48 2013 -0800\n\n    Configure TCP datagram sockets to be TCP_NODELAY.\n\n    Change-Id: Ia724a81e6e27dccd00ac84603e712d69ca77a0cd\n\ncommit 1b52b393183db8a6dc000a7c31baac544ccfc50c\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Feb 27 14:26:01 2013 -0800\n\n    Send IDR frame requests on packet loss.\n\n    Change-Id: I53b7fb85cbd6923491113b93ec3e2175726d654a\n\ncommit 68d76b4b3a0181b30abc57cd2915273210530a6d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Feb 26 15:12:34 2013 -0800\n\n    Revive TunnelRenderer\n\n    Change-Id: I8c5a9d982793b1c5b841c828227b354f1dab618c\n\ncommit 3df28a8e9d8bcdc1430016bb088d097eca653b56\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Feb 26 13:53:14 2013 -0800\n\n    Disable suspension of video updates.\n\n    Change-Id: I7e3a16b8d7dd7a55d9f962a2236388931f664106\n\ncommit 2ec7a79de019a26ec415016c1478afd762f069cd\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Feb 26 08:54:40 2013 -0800\n\n    Adds an SNTP client to wfd.\n\n    Change-Id: Icd7d6104e951e1443e4c1b81ccf6b3731d79d3ec\n\ncommit c81c3bb5725bb4079a4d7fb02151ad0bb540632f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Feb 25 10:00:58 2013 -0800\n\n    Squashed commit of the following:\n\n    commit b83a4ec96659ef6f6b7c2090fdd866abe3ab78ba\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Mon Feb 25 09:28:11 2013 -0800\n\n        Some reorganization of the rtp code, renamed StreamHub -\u003e MediaSender\n\n        Change-Id: I8cf67444960e60426bf74880af1acce41e8b2fef\n\n    commit 7769cbd739f2a67c58e0c6a7b1a21a12210c7c4d\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Fri Feb 22 16:12:18 2013 -0800\n\n        Choose a smaller MTU to avoid fragmented IPv4 packets, fix AVC assembler.\n\n        Change-Id: I274b3cc1483c4e9f4d146dbf9f3d9f7557ef7ef9\n\n    commit 1f687ee80a88b56d614c2cf408ff729114ff86a0\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Fri Feb 22 11:38:31 2013 -0800\n\n        better reporting.\n\n        Change-Id: I67f0bb51f106ea77f5cc75938b053c8e8e8f688e\n\n    commit 7950c1cd59213eb5f281fcde44a772ecffae473d\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Fri Feb 22 09:07:41 2013 -0800\n\n        stuff\n\n        Change-Id: Ib99416366d3eec6e6ad69b4d791a8a9408410f3b\n\n    commit 33c09045b0f86fcaa4619cbd679b47a074f71231\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Thu Feb 21 15:54:01 2013 -0800\n\n        Render frames according to their timestamps.\n\n        Change-Id: I8143a95cffe775799d6a4bb093558bd7abb1f063\n\n    commit d8b6daae2160bf1c016d7c6251256b46bb89db42\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Thu Feb 21 15:01:27 2013 -0800\n\n        Better packet-lost logic.\n\n        Change-Id: I611eee5a42bd089638cf45b0e16f628ff2a955ab\n\n    commit 782c6b15717e2d062d96665a089d06c0577733d0\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Wed Feb 20 15:06:47 2013 -0800\n\n        Add a dedicated looper for the MediaReceiver\n\n        Change-Id: I3b79cad367fb69c9a160a8d009af8c5f5142b98e\n\n    commit 4c7b8b10861674b773270103bcabd1a99486a691\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Wed Feb 20 14:30:28 2013 -0800\n\n        Tweaks to RTPSender and RTPReceiver\n\n        Change-Id: Ib535552f289a26cfead6df8c63e4c63d3987d4e9\n\n    commit 39226b28177a816cda5c67b321745d396b18277d\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Tue Feb 19 08:48:25 2013 -0800\n\n        Playing around with non muxed delivery\n\n        Change-Id: I845375f6938d04bc30502840c2ceb7688dc9b237\n\n    commit c16d21de75d8ecdbcd9abce14934afe484970061\n    Author: Andreas Huber \u003candih@google.com\u003e\n    Date:   Wed Feb 13 14:43:35 2013 -0800\n\n        A more solid base for RTP communication.\n\n        Change-Id: I52033eeb0feba0ff029d61553a821c82f2fa1c3f\n\n    Change-Id: I57e3bcfc1c59a012b15aaaa42ed81f09c34c26bb\n\nChange-Id: I4b09db4a44d0eeded7a1658f6dc6c97d4b8be720\n"
    },
    {
      "commit": "a7a5917a064710edea9cfacc8eda44532150e852",
      "tree": "506ee93cee969d2f1be4cda5346c12a514dd4441",
      "parents": [
        "0c57461f2c19f3a271c66f52cf8c9b2a82b13518",
        "f779bb50d9746d9526541c3e6dcdf619cac941b7"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Mar 05 17:41:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 05 17:41:25 2013 +0000"
      },
      "message": "Merge \"Implement Surface input to MediaCodec.\" into jb-mr2-dev"
    },
    {
      "commit": "538f498bbd5a2da51c9037a2689afc97f8bded8f",
      "tree": "1c9197aff7f824310044a6b88148e04c20c85552",
      "parents": [
        "0c57461f2c19f3a271c66f52cf8c9b2a82b13518"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Nov 26 10:40:24 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 05 08:26:50 2013 -0800"
      },
      "message": "Add template class SingleStateQueue\n\nChange-Id: If7e2bc9b2a216524ee9cbb68682e2634933b4973\n"
    },
    {
      "commit": "f779bb50d9746d9526541c3e6dcdf619cac941b7",
      "tree": "cee03011ebf84cfcd704ead0744e0b53dd91c4f7",
      "parents": [
        "10774e144b3c99afad9a5070ccf50fdb12b5fb4e"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Feb 19 07:28:30 2013 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Mar 04 15:03:53 2013 -0800"
      },
      "message": "Implement Surface input to MediaCodec.\n\nAlso, renamed a CHECK_INTERFACE macro that was clashing with the\nBinder version.\n\nBug 7991062\n\nChange-Id: If5e6ed0a06d9f67975497676e4b05abe3aa3d6c0\n"
    },
    {
      "commit": "a265845ecafe06c9668ce7ac67636657f4bedf86",
      "tree": "ae75ddb56a1aa950221e8961c0d2718958b61987",
      "parents": [
        "10774e144b3c99afad9a5070ccf50fdb12b5fb4e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 26 11:32:32 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 04 12:58:21 2013 -0800"
      },
      "message": "Miscellaneous cleanup\n\nAbbreviation framesReady to fRdy for new systrace.\nPut inline const on one line.\nUse local copy of mState in state.\nImprove logging.\nLine length 100.\n\nChange-Id: I8201c3ce0e53fd464fd33d02544e52c342d40b68\n"
    },
    {
      "commit": "551bb75ae1bec8db8577febcf6faaa35a37947dc",
      "tree": "02bcee3f9ad171dadf8a8c848bb4e0cce8fe1a58",
      "parents": [
        "5324bb2889c34cb85849ff1302215751a32c6a0d",
        "1a76084dd8918533b00d76fbef15888742f752df"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 01 19:37:58 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 01 19:37:58 2013 +0000"
      },
      "message": "am c0048178: Merge \"Avoid invalid memory access when using extractMetadata()\"\n\n* commit \u0027c0048178a1d312e7e05557ba99becd6a89b9e97a\u0027:\n  Avoid invalid memory access when using extractMetadata()\n"
    },
    {
      "commit": "1a76084dd8918533b00d76fbef15888742f752df",
      "tree": "31241ba242b5cf8c9c93a6ef1ee2eb1ca19cd101",
      "parents": [
        "d166e4c1b2463a1aa78ca9225a36aa956427446b",
        "d72b2aa86e19644bbaa72039b3a3044390ba0ecd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 01 19:06:22 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 01 19:06:23 2013 +0000"
      },
      "message": "Merge \"Avoid invalid memory access when using extractMetadata()\""
    },
    {
      "commit": "d72b2aa86e19644bbaa72039b3a3044390ba0ecd",
      "tree": "b0906031536d69a4a84b667e5f82b1aa5de60a78",
      "parents": [
        "2cd9cc25f07a9270a932fdf9c7b52c398e07bce5"
      ],
      "author": {
        "name": "Sangkyu Lee",
        "email": "sk82.lee@lge.com",
        "time": "Fri Feb 08 16:26:39 2013 +0900"
      },
      "committer": {
        "name": "Sangkyu Lee",
        "email": "sk82.lee@lge.com",
        "time": "Thu Feb 28 16:42:42 2013 +0900"
      },
      "message": "Avoid invalid memory access when using extractMetadata()\n\nBpMediaMetadataRetriever::extractMetadata() returns a string\nwhich is returned by readCString() function of the reply parcel object.\nHowever, the parcel object is destroyed at the end of the\nextractMetadata() function, and so the returned pointer is invalid.\nThis patch fixes this problem by storing the metadata string value.\n\nChange-Id: I2a2ccba78246175b2845a237679d6cebe881e83b\nSigned-off-by: Sangkyu Lee \u003csk82.lee@lge.com\u003e\n"
    },
    {
      "commit": "7072e03ae4eb9b8f48a567dbb2a5cc8d2049f331",
      "tree": "92cbfe05639329e162f362b5d3bd80fc0227511d",
      "parents": [
        "f9a2b8192403a969919fa7751c3d95bfb44ecec5",
        "d166e4c1b2463a1aa78ca9225a36aa956427446b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 27 21:14:45 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 27 21:14:45 2013 +0000"
      },
      "message": "am ceb83b8d: Merge \"SoftAMR: Signal the right frame format\"\n\n* commit \u0027ceb83b8d8919dc778402bf610c073987d4f9f89b\u0027:\n  SoftAMR: Signal the right frame format\n"
    },
    {
      "commit": "f9a2b8192403a969919fa7751c3d95bfb44ecec5",
      "tree": "0541e9c890ee898402d4bb8c79de57bb87df557f",
      "parents": [
        "7fa43f376ebd63fda24d85c9ebf97e0ddf534083",
        "25e964bc9cfbb8ed315f75ac1e05cbc3c6cd9fc2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 27 21:14:45 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 27 21:14:45 2013 +0000"
      },
      "message": "am ccf51ec4: Merge \"SoftVorbis: Set the right encoding in the port definition\"\n\n* commit \u0027ccf51ec41652a7e2db8cbee37bca91a95908d5ff\u0027:\n  SoftVorbis: Set the right encoding in the port definition\n"
    },
    {
      "commit": "f5daac4225905184b8d7cdd2fd87247d73e27ea7",
      "tree": "5324b82082de8fb57ddddeb8aa154c14cddd55e9",
      "parents": [
        "5e8e702658cd61fc07b4163fdbca3e8a5589f2b9",
        "b84d935c179a275a47e07291d2a983daf844de80"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 27 20:43:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 27 20:43:26 2013 +0000"
      },
      "message": "Merge \"camera_client: refactor Camera/ProCamera commonalities into BasicCamera\" into jb-mr2-dev"
    },
    {
      "commit": "d166e4c1b2463a1aa78ca9225a36aa956427446b",
      "tree": "2020e9b5a3aca0085006b587a72607e1a7634717",
      "parents": [
        "25e964bc9cfbb8ed315f75ac1e05cbc3c6cd9fc2",
        "d13e6d06ecbbad0fcd7681f9d3c3b076016339aa"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 27 20:13:24 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 27 20:13:25 2013 +0000"
      },
      "message": "Merge \"SoftAMR: Signal the right frame format\""
    },
    {
      "commit": "25e964bc9cfbb8ed315f75ac1e05cbc3c6cd9fc2",
      "tree": "6f163708d5b1a1e641fbfdb9b2298c30ff99c774",
      "parents": [
        "6ee1b867bb316fa3eda3b0c9f907d473031659d9",
        "323093339da7774935bd4f3a8af5057e4411f30a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 27 20:12:07 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 27 20:12:07 2013 +0000"
      },
      "message": "Merge \"SoftVorbis: Set the right encoding in the port definition\""
    },
    {
      "commit": "aebd9bbed761d99b20bb1871ed170021fb3c68ad",
      "tree": "7ae482fd31c7992c0fc739a7996fe49986b96d07",
      "parents": [
        "48af7e8dd40883d6154e7029d9500072b551b5fa",
        "6ee1b867bb316fa3eda3b0c9f907d473031659d9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 27 17:59:00 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 27 17:59:00 2013 +0000"
      },
      "message": "am 801726ef: Merge \"MPEG4Writer: Write a zero-length compressor string\"\n\n* commit \u0027801726efb2dcc6ea19e9f55c7c43fe41f0c6643e\u0027:\n  MPEG4Writer: Write a zero-length compressor string\n"
    },
    {
      "commit": "6ee1b867bb316fa3eda3b0c9f907d473031659d9",
      "tree": "ec59f2534cb903f7fb91009effb7b68c554efa97",
      "parents": [
        "9a6c614a68b07209919aaea3d4a8b5403379fb35",
        "89b28bfea641983a908b45a15e69a6c62add847a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 27 16:53:21 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 27 16:53:21 2013 +0000"
      },
      "message": "Merge \"MPEG4Writer: Write a zero-length compressor string\""
    },
    {
      "commit": "253e3c03b0cf4d5852a497ddda0f43b630664644",
      "tree": "d116163acd3ac9af9ce2061784d870806bce977d",
      "parents": [
        "fec2744fd6243b1329f52aa8a16c0768f24956b4",
        "48af7e8dd40883d6154e7029d9500072b551b5fa"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Feb 26 01:40:39 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 26 01:40:39 2013 +0000"
      },
      "message": "am ceb388d6: CameraService and Stagefright: Support AppOps\n\n* commit \u0027ceb388d6c03c38b96dc41c0ea4804b749aa077c4\u0027:\n  CameraService and Stagefright: Support AppOps\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": "c9c47e48256fc1b79a77be8226ab9030920c0355",
      "tree": "c2686de16a3e0665c70d14618a4fe44cad1c4f99",
      "parents": [
        "ee9cc423e2551ffbacfd226b8627737beabaec99"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Fri Nov 23 19:00:07 2012 +0900"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 25 09:01:01 2013 -0800"
      },
      "message": "Handles duplicated NAL start code to fix crash on HLS streams.\n\nSome youtube live streams are encoded having duplicated NAL start code,\nfor instance, 00 00 01 00 00 00 01 ....\n\nIn previous code, zero NAL size causes crash by CHECK_GT(nalsize, 0)\nmacro. With this patch, duplicated NAL start code will be just ignored.\n\nTESTED\u003dPlayed problematic Youtube Live streams.\n\nChange-Id: I1d76f111a34bd29cb09b037eb1b0626fe5f5b140\n"
    },
    {
      "commit": "8029ea41c8851c527ed5829e8c26fbf939661f34",
      "tree": "5ef58bfba85abac9234c739ab65ef4d195e285b6",
      "parents": [
        "2f8025eef6c681920579f75d298a262b12a80ac9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 20 16:47:28 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 20 16:47:28 2013 -0800"
      },
      "message": "Permit conditional registry of mediaserver extensions\n\nChange-Id: I94dc0d038e702dfe1779a50a1de0fae9bad15057\n"
    },
    {
      "commit": "d13e6d06ecbbad0fcd7681f9d3c3b076016339aa",
      "tree": "a5c638186a606ed74ec62e10ac64ab9bb5083bca",
      "parents": [
        "9a6c614a68b07209919aaea3d4a8b5403379fb35"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Sun Feb 17 20:36:45 2013 +0200"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Sun Feb 17 20:39:14 2013 +0200"
      },
      "message": "SoftAMR: Signal the right frame format\n\nThe correct enum for the format used is OMX_AUDIO_AMRFrameFormatFSF,\nwhich is the same as is used in amrnb/enc/SoftAMRNBEncoder.cpp,\namrwbenc/SoftAMRWBEncoder.cpp and in OMXCodec and ACodec.\n\nThe OMX_AUDIO_AMRFrameFormatConformance enum refers to an odd file\nformat only used for conformance tests, not used in the wild.\n\nChange-Id: Idc395fc1d4969e33453522d6ec6526876438c526\n"
    },
    {
      "commit": "4490bf05a9addf5a4e12e0da92f22d854e5ce9a0",
      "tree": "62c3cfb9c8fb3c48df46aea39f4d6c3d27dab65a",
      "parents": [
        "6bde4671ae7cb383e731606d9ee548859047c961",
        "b1e7cd156ca3e1747374e0d20cdd1ce467210453"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 15 22:05:59 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 22:05:59 2013 +0000"
      },
      "message": "Merge \"Refactoring: Rename SurfaceTextureClient to Surface\""
    },
    {
      "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": "6bde4671ae7cb383e731606d9ee548859047c961",
      "tree": "b32615250ff96cb6e55206f5c78ae2e15c83cc87",
      "parents": [
        "62ad9071cd61fc56355d3c2d25895382003ea362"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 15 08:26:24 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 15 11:46:09 2013 -0800"
      },
      "message": "Remove FragmentedMP4Extractor\n\nMPEG4Extractor now supports fragmented mp4 files.\n\nChange-Id: I5659a51f4e5e4407a12535e69238fe3abffda7dc\n"
    }
  ],
  "next": "62ad9071cd61fc56355d3c2d25895382003ea362"
}
