)]}'
{
  "log": [
    {
      "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": "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": "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": "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"
    },
    {
      "commit": "62ad9071cd61fc56355d3c2d25895382003ea362",
      "tree": "3795e34e35b63dbe73daac08d151501c43a91733",
      "parents": [
        "0d026335f6040df997d35b7e81f8c9f8be8cdec0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Feb 13 09:27:28 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 15 10:03:04 2013 -0800"
      },
      "message": "Add support for fragmented mp4 to MPEG4Extractor\n\nThis makes FragmentedMP4Extractor obsolete. It will be removed in a\nseparate change.\n\nChange-Id: Ida74c07ccf84983e20a1320ee24ffc7a5c083859\n"
    },
    {
      "commit": "c7c78e3d17cd3e599b052b35dfa7ba204803ac53",
      "tree": "30610a5b21cfa882a9f17a7b4cc39d11e8ccdd7d",
      "parents": [
        "79e499be700ff3365b778f9f6b2c179ad69ae43a",
        "b6cd3797b010e0de3366e062f590fcb98c5f81bf"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 13 18:18:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 13 18:18:22 2013 +0000"
      },
      "message": "Merge \"Add OMX.google.vpx.encoder\""
    },
    {
      "commit": "b6cd3797b010e0de3366e062f590fcb98c5f81bf",
      "tree": "f7a064d94c090f0935fd91455b78ce69b5208d26",
      "parents": [
        "10e5eada4a265865494b93ca588f75beef14f592"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 12 10:36:01 2013 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 12 17:26:42 2013 -0800"
      },
      "message": "Add OMX.google.vpx.encoder\n\nChange-Id: I843e6e542533884a94e105e1cb56f16f0440af61\n"
    },
    {
      "commit": "79e499be700ff3365b778f9f6b2c179ad69ae43a",
      "tree": "44d4b26da9ba2ef5b71e5dd41c3e3711f178d891",
      "parents": [
        "10e5eada4a265865494b93ca588f75beef14f592"
      ],
      "author": {
        "name": "Kunter Gultekin",
        "email": "kuntergultekin@google.com",
        "time": "Fri Feb 01 17:01:15 2013 +0200"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 12 17:24:04 2013 -0800"
      },
      "message": "Adds VPX encoding support for stagefright.\n\nOnly following encoder settings are available\n    - target bitrate\n    - rate control (constant / variable)\n    - frame rate\n    - token partitioning\n    - error resilience\n    - reconstruction \u0026 loop filters\n\nOnly following color formats are recognized\n    - YUV420Planar\n    - YUV420SemiPlanar\n    - AndroidOpaque\n\nFollowing settings are not configurable by the client\n    - encoding deadline is realtime\n    - the algorithm interface for encoder is vp8\n    - fractional bits of frame rate is discarded\n    - timebase is fixed to 1/1000000\n\nRequires libvpx to be built with encoder support enabled.\nRequires openmax 1.1.2 extension headers.\n\nRelevant tests exist in cts repo.\n\nChange-Id: I650f1aca83e7dc93f79d7e6cba7ac24f26e66d40\nSigned-off-by: Kunter Gultekin \u003ckuntergultekin@google.com\u003e\n"
    },
    {
      "commit": "6269d53cce5c1c9350565d3d72d92116594260cb",
      "tree": "debfbedbe8cf9a16d279f9a408519aa4743cc854",
      "parents": [
        "e336f9113bdd35119866a3c3f8008ca01c576660"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Feb 04 15:59:38 2013 -0800"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Feb 12 11:10:12 2013 -0800"
      },
      "message": "Add the native MediaMuxer support.\n\nMediaAdapter: a helper class to convert the push model to pull model.\nMediaMuxer: the real muxer.\n\nbug:7991013\n\nChange-Id: If3b79551bc6332bc81f5c2740885e579a5c4abf9\n"
    },
    {
      "commit": "e336f9113bdd35119866a3c3f8008ca01c576660",
      "tree": "a53d8070243784449dc87ca193e2e121d38863b7",
      "parents": [
        "51a920302a6f376cdb24691051d96f34f24a55bf"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Feb 04 16:26:02 2013 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Feb 11 10:13:00 2013 -0800"
      },
      "message": "Add support for querying if a stream is active remotely\n\nBug 7485803\n\nChange-Id: I0744374f130fd2dd0714102354cffed2fa915361\n"
    },
    {
      "commit": "51a920302a6f376cdb24691051d96f34f24a55bf",
      "tree": "3efa1d517f317e9171eed91370a18d381cca4536",
      "parents": [
        "fa171eaa239ee2e83ce57091279e170369de4edb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 08 18:16:02 2013 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 08 18:17:46 2013 -0800"
      },
      "message": "Revert \"Adds VPX encoding support for stagefright.\"\nThis lib was not part of the build, but it is built anyway for userdebug image (not for eng though).\nlet me revert it for now...\n\nThis reverts commit 6c6bb9873f55853fe74d8f45ad3ae116636d8be7.\n"
    },
    {
      "commit": "fa171eaa239ee2e83ce57091279e170369de4edb",
      "tree": "498b0ce4e6bce51ff7dca73160b5c168bb04a3a4",
      "parents": [
        "2b02df2df65dd12162bc7b3a2ef135bbce8ed0a7",
        "8b7a86119ca2da79d23713ee6b4581c222f2c0fe"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Feb 09 00:47:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 09 00:47:03 2013 +0000"
      },
      "message": "Merge \"Adds VPX encoding support for stagefright.\""
    },
    {
      "commit": "2b02df2df65dd12162bc7b3a2ef135bbce8ed0a7",
      "tree": "3efa1d517f317e9171eed91370a18d381cca4536",
      "parents": [
        "90cede87c5a0176574961a4a57589eb217ac1873",
        "38fb629c46efb74517332696d5d117f4466fa3f0"
      ],
      "author": {
        "name": "Mike Lockwoood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 08 21:51:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 21:51:43 2013 +0000"
      },
      "message": "Merge \"MTP: Write initial data to correct file offset in SendPartialObject\""
    },
    {
      "commit": "38fb629c46efb74517332696d5d117f4466fa3f0",
      "tree": "27a6883c8003ea76befc4b57c6986f145f983f96",
      "parents": [
        "1cca13c79ff7e3f36a2fc6e564b60f5e57d00919"
      ],
      "author": {
        "name": "Mike Lockwoood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 08 13:25:01 2013 -0800"
      },
      "committer": {
        "name": "Mike Lockwoood",
        "email": "lockwood@google.com",
        "time": "Fri Feb 08 13:25:01 2013 -0800"
      },
      "message": "MTP: Write initial data to correct file offset in SendPartialObject\n\nChange-Id: I84288aeda3e65e6e6487f11d32a72910cd16cff2\n"
    },
    {
      "commit": "90cede87c5a0176574961a4a57589eb217ac1873",
      "tree": "83bd670377ac615a4803d9cfb8455bb178ba72e5",
      "parents": [
        "1dfc70879323990ba4b4d3e7cadc93ea3900063c",
        "c71601c3b1dd63afc9be462194809813e4dbacf1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 07 23:25:59 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 23:26:00 2013 +0000"
      },
      "message": "Merge \"Allow for dynamic reconfiguration of the video bitrate used\""
    },
    {
      "commit": "1dfc70879323990ba4b4d3e7cadc93ea3900063c",
      "tree": "3153e38fe4f71bd3ad754d569a594591fb1950b5",
      "parents": [
        "0955986e6c1c27ba752e293246086ea79c49d39c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 07 11:38:08 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 07 13:33:28 2013 -0800"
      },
      "message": "A few more patches to fix wfd tcp unicast transport.\n\nChange-Id: Ie2f1b1e56c487ac4c3ef19d9e79022a35084e042\n"
    },
    {
      "commit": "c71601c3b1dd63afc9be462194809813e4dbacf1",
      "tree": "f91f7e9da453d188934ef99d136f2606a52fe3d9",
      "parents": [
        "0955986e6c1c27ba752e293246086ea79c49d39c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 07 10:56:14 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 07 10:56:14 2013 -0800"
      },
      "message": "Allow for dynamic reconfiguration of the video bitrate used\n\nto encode video while running as a wfd source.\n\nChange-Id: I44f7b2350c88fc5807047c61bfe594ef8fa79275\n"
    },
    {
      "commit": "8b7a86119ca2da79d23713ee6b4581c222f2c0fe",
      "tree": "00b34067f704d0de106635cda01175b11234abaf",
      "parents": [
        "0955986e6c1c27ba752e293246086ea79c49d39c"
      ],
      "author": {
        "name": "Kunter Gultekin",
        "email": "kuntergultekin@google.com",
        "time": "Fri Feb 01 17:01:15 2013 +0200"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 07 10:18:13 2013 -0800"
      },
      "message": "Adds VPX encoding support for stagefright.\n\nOnly following encoder settings are available\n    - target bitrate\n    - rate control (constant / variable)\n    - frame rate\n    - token partitioning\n    - error resilience\n    - reconstruction \u0026 loop filters\n\nOnly following color formats are recognized\n    - YUV420Planar\n    - YUV420SemiPlanar\n    - AndroidOpaque\n\nFollowing settings are not configurable by the client\n    - encoding deadline is realtime\n    - the algorithm interface for encoder is vp8\n    - fractional bits of frame rate is discarded\n    - timebase is fixed to 1/1000000\n\nRequires libvpx to be built with encoder support enabled.\nRequires openmax 1.1.2 extension headers.\n\nRelevant tests exist in cts repo.\n\nChange-Id: If759edb8db36acbd24dcb53d159a54e942766020\nSigned-off-by: Kunter Gultekin \u003ckuntergultekin@google.com\u003e\n"
    },
    {
      "commit": "0955986e6c1c27ba752e293246086ea79c49d39c",
      "tree": "916e9f3ecf9f371e8b11d7d04eabaec46f6ad0d9",
      "parents": [
        "1a37ee3c877165c812734b405f922f6e0d747052"
      ],
      "author": {
        "name": "Roger Jönsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Wed Jan 23 18:18:08 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:48:16 2013 -0800"
      },
      "message": "Avoid rebuffering after RTSP pause\n\nIf pausing an RTSP stream, an RTSP Pause request is sent and then\nif the stream is immediately resumed again, an RTSP Play request\nwill be sent to the server.\nBut the new data after the pause will not be buffered until\nSender Reports have arrived again on both channels.\nMeanwhile the player will resume playback and continue consuming\nthe already existing buffer.\nThis means that there is a risk that the buffer is emptied while\nwaiting for sender reports.\n\nThis commit simply adds a delay before the RTSP pause request is\nsent, allowing some additional RTSP buffering that might be needed\nwhen the stream is resumed again.\nAlso, if the stream is resumed again before the RTSP pause request\nis sent, there is no need for any RTSP pause request, hence it is\nomitted.\n\nChange-Id: I928c8bfb5e99a6a146dcda4e51e528973ecbe065\n"
    },
    {
      "commit": "1a37ee3c877165c812734b405f922f6e0d747052",
      "tree": "8fbcdb52e343942586e0dbd2f104b1f0c6cac7ba",
      "parents": [
        "b6ec588faa7728ff3b518bf809ff75e8dd14f08c"
      ],
      "author": {
        "name": "joakim johansson",
        "email": "joakim.c.johansson@sonyericsson.com",
        "time": "Wed Jan 23 17:18:56 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:45:28 2013 -0800"
      },
      "message": "EOS fixes for RTSP streams\n\nThe fix takes care of several near end of stream use cases:\nseek, pause and fake timestamps.\n\nChange-Id: I5f5fa881b1f619dfd5e1afd2af957082345c59eb\n"
    },
    {
      "commit": "b6ec588faa7728ff3b518bf809ff75e8dd14f08c",
      "tree": "4fe2958cdf06a4f37df49d6b85b72255c8b98180",
      "parents": [
        "46d13e3606b87d71379287672b54b50d0d9aa5cc"
      ],
      "author": {
        "name": "Måns Zigher",
        "email": "mans.zigher@sonyericsson.com",
        "time": "Wed Jan 23 14:48:57 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:41:17 2013 -0800"
      },
      "message": "RTSP: Parse session level control attribute from SDP\n\nIf a\u003dcontrol: is present at session-level in the SDP response,\nRFC2326:C.1.1 defines the URL to be used for aggregate commands.\nThis includes PLAY and PAUSE but not TEARDOWN.\n\nChange-Id: Iaa1dc2271d00df39dc83477a99fda6fbeb73c5b4\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": "ec29a2bfb5364a5968b77559fd13821b827d173a",
      "tree": "dd4c1ae2ccc29d1895921178e6621d4a2c9ee40d",
      "parents": [
        "80c1ae8f63cbbd243756caf1533ddbb97244b8b5"
      ],
      "author": {
        "name": "Roger Jönsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Thu Jan 17 13:22:31 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 10:50:06 2013 -0800"
      },
      "message": "Detect live streams\n\nThe information is used to decide on visibility of pause button and\nto handle the duration clock correctly.\n\nChange-Id: I286ac992fd171c7fc313e429326d38b6fc80e3fb\n"
    },
    {
      "commit": "80c1ae8f63cbbd243756caf1533ddbb97244b8b5",
      "tree": "5d5b070e6d10ee836bb7b656cdd97fce842aec86",
      "parents": [
        "1c5ea2d56c74601191c1bc3a6bfc303891f596fc",
        "81dd60e0340ddcf7f1d5fb80b6c30906fabf201a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 18:29:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 18:29:37 2013 +0000"
      },
      "message": "Merge \"Added HTTP support for SDP files.\""
    },
    {
      "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": "1c5ea2d56c74601191c1bc3a6bfc303891f596fc",
      "tree": "ede69631f19dd56df037daa5be74e731a0b073c7",
      "parents": [
        "7846311d9a7d1f52432f5b66d084d587666ab27a",
        "5ab368af38fefacc4009e3ab1c1bbd00e62b3bcf"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 18:26:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 18:26:03 2013 +0000"
      },
      "message": "Merge \"Groundwork to support bidirectional, asynchronous communication\""
    },
    {
      "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": "7846311d9a7d1f52432f5b66d084d587666ab27a",
      "tree": "5129a41b2dc4118d13439409440529e562e0047f",
      "parents": [
        "b15a3e8292d3c98d06d136a07b6e8e66f33dd5c7",
        "7bc2ffca12828d72aaeeace0891183dc547877c0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 17:55:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 17:55:48 2013 +0000"
      },
      "message": "Merge \"Revive the code to support TCP interleaved transport\""
    },
    {
      "commit": "b15a3e8292d3c98d06d136a07b6e8e66f33dd5c7",
      "tree": "6a4c3db31e7c3b9c3e4fa6156cf362c50bd73e43",
      "parents": [
        "c41c932328f35f5eed7e517e9b64db9144f2fcb0",
        "200d71c850e308d4153ea2ea2ebc0004bcae7808"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Feb 05 17:39:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 17:39:04 2013 +0000"
      },
      "message": "Merge \"Return error code if setting scaling mode fails\""
    },
    {
      "commit": "200d71c850e308d4153ea2ea2ebc0004bcae7808",
      "tree": "df348c603a7ce5cc4eccc3106b8ead6f0529ea8a",
      "parents": [
        "4f5454ecf49b1021cdd492f7764f013b39676bc6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Feb 05 09:03:22 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Feb 05 09:03:22 2013 -0800"
      },
      "message": "Return error code if setting scaling mode fails\n\nThe return code from native_window_set_scaling_mode() was ignored.\nLooking at the code review comments that introduced this code, it\nseems like the intention was to return the error code in that case.\n\nChange-Id: I9592cc378f0a0b960d37178aa0525fc17e8734ba\n"
    },
    {
      "commit": "c41c932328f35f5eed7e517e9b64db9144f2fcb0",
      "tree": "30a1748c2f491e2c420048eae243ced8696f43f1",
      "parents": [
        "83fa606bd629ac32a2dab5af255188acfa30db4a",
        "ea85a11a0833a887340d7e977db0c59fb508b92f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 04 18:18:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 04 18:18:48 2013 +0000"
      },
      "message": "Merge \"Remove a few unused header includes from PlaybackSession.cpp\""
    },
    {
      "commit": "ea85a11a0833a887340d7e977db0c59fb508b92f",
      "tree": "8238e5004c280756678324bdcaf03d1c59f2dfa9",
      "parents": [
        "4f5454ecf49b1021cdd492f7764f013b39676bc6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 30 13:31:59 2013 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 01 17:29:07 2013 -0800"
      },
      "message": "Remove a few unused header includes from PlaybackSession.cpp\n\nChange-Id: Id3147e2f2d5d75ccc172e67802639cd43ed68870\n"
    },
    {
      "commit": "7bc2ffca12828d72aaeeace0891183dc547877c0",
      "tree": "2191ce6aaaf12988f213f0825e6d1f8beab29140",
      "parents": [
        "1d3a2a224f6a617f62fed36e9b6664f4b682727f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 01 11:43:44 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 01 11:43:44 2013 -0800"
      },
      "message": "Revive the code to support TCP interleaved transport\n\nAlso support non-interleaved transport now, but the sink gets to decide\nwhat mode it wants to run in, _not_ the source.\n\nChange-Id: I3b6057f86871084e4decf930bb4a7a2d7517b0f2\n"
    },
    {
      "commit": "1d3a2a224f6a617f62fed36e9b6664f4b682727f",
      "tree": "656509d1153fdb6084402988c0700407963d17c6",
      "parents": [
        "011aa652a9349750dd6bca1dcb1b82f19e07504e",
        "2520d32ca16632e1810bc195707146a9d030d39e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 01 16:35:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 01 16:35:11 2013 +0000"
      },
      "message": "Merge \"Fix typo and reduce allocation overhead of RTP retransmission requests.\""
    },
    {
      "commit": "0be9fe5864c39c11eefe335038cf6ce5473e4ec5",
      "tree": "a5a21ccd28ea763c36d3c4a0aae1d455baf9636d",
      "parents": [
        "1cca13c79ff7e3f36a2fc6e564b60f5e57d00919",
        "fdf4e4f1859771b95585cbc87f8cd038ea2815c6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 01 00:39:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 01 00:39:48 2013 +0000"
      },
      "message": "Merge \"Add media.log service based on NBLog\""
    },
    {
      "commit": "2520d32ca16632e1810bc195707146a9d030d39e",
      "tree": "ecae86b7e37105cbf7daa90d8dc9ffb4349210a7",
      "parents": [
        "4f5454ecf49b1021cdd492f7764f013b39676bc6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 31 15:25:07 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 31 15:25:07 2013 -0800"
      },
      "message": "Fix typo and reduce allocation overhead of RTP retransmission requests.\n\nChange-Id: I402a195da5dfeceadb4d073888ee7702c5532dc8\n"
    },
    {
      "commit": "323093339da7774935bd4f3a8af5057e4411f30a",
      "tree": "01641ae1606c8c36607d9246085c51cf3d216ff5",
      "parents": [
        "2cd9cc25f07a9270a932fdf9c7b52c398e07bce5"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Jan 30 21:12:58 2013 +0200"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Thu Jan 31 11:27:40 2013 +0200"
      },
      "message": "SoftVorbis: Set the right encoding in the port definition\n\nPreviously, it set the encoding type to AAC, which is just a typo.\n\nChange-Id: I2dcae1f579e9feb0b35b6f5d334028c534275042\n"
    },
    {
      "commit": "89b28bfea641983a908b45a15e69a6c62add847a",
      "tree": "ea05257bdb2bb61e291b376ebce5fe97af74c069",
      "parents": [
        "2cd9cc25f07a9270a932fdf9c7b52c398e07bce5"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Jan 30 18:45:30 2013 +0200"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Thu Jan 31 11:22:35 2013 +0200"
      },
      "message": "MPEG4Writer: Write a zero-length compressor string\n\nThe first byte is the number of bytes in the string to display,\nthe rest is the actual string (see ISO/IEC 14496-12:2008 page 29,\ncompressorname in VisualSampleEntry) to display. Currently, all 31\nspace characters are displayed in certain players (such as Apple\nQuickTime Player) instead of the plain codec name (e.g. \"H.264\").\nBy writing the string length properly, the actual content of the\nremaining 31 bytes is ignored instead of displayed.\n\nChange-Id: I7f93a8966d74a4e86abc46c3dcb70f71780d9cd6\n"
    },
    {
      "commit": "4f5454ecf49b1021cdd492f7764f013b39676bc6",
      "tree": "23378824ee91854bcd68ac893a4a4949c2c83c40",
      "parents": [
        "279dcd89ab1d2de91dfe95e461412a0f577a6891",
        "4563d95b810682195529100e0bc4ae70fa4abe29"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 30 21:33:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 30 21:33:23 2013 +0000"
      },
      "message": "Merge \"Actually display something on screen when instantiating a wfd sink via\""
    }
  ],
  "next": "4563d95b810682195529100e0bc4ae70fa4abe29"
}
