)]}'
{
  "log": [
    {
      "commit": "c148e7a671c289f82f6ca40e29defcc43e1c6d0b",
      "tree": "da24c7ca1f2d19047b17131bcf1f484ba2745aea",
      "parents": [
        "2a5177e8a72585b6f4da972d86f436d31cd4674a",
        "d5e56231a598b180a1d898bb7dc61b75580e59a4"
      ],
      "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": "d5e56231a598b180a1d898bb7dc61b75580e59a4",
      "tree": "7bb3e14a2c8212813d6e33cb3c7a8da2470d58f5",
      "parents": [
        "e6800cea0678dbc0bf697b44c3e4548b0253085c"
      ],
      "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": "b9f4140b374b56277f8aec47d1a31ec713ad8668",
      "tree": "9ad6bd15ff85ba1c5cd497b3dcae72a55b32c322",
      "parents": [
        "70369845f8250df4f6f22c336414b4df0a3ce53e"
      ],
      "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": "70369845f8250df4f6f22c336414b4df0a3ce53e",
      "tree": "c1b635a2b80aff583bf569f53942239727369038",
      "parents": [
        "2797b47f8a74b902d445cd89755e2349136a8b6b",
        "3db62dfc5102247d415df4667bd9609e669fc022"
      ],
      "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": "3db62dfc5102247d415df4667bd9609e669fc022",
      "tree": "70ae686be3e35fb0a2af316d4d4fce733f06249c",
      "parents": [
        "bf04b5860182d8f4130dcb5d6d88ee68a58c99cd"
      ],
      "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": "2797b47f8a74b902d445cd89755e2349136a8b6b",
      "tree": "61cd8a59c557cd84b1bfa986d87167cac5751124",
      "parents": [
        "6472c2af1de21a65dc214751b0ef1d7564c28be1",
        "5abf87f9af48149972eeb851ecaea679911da040"
      ],
      "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": "5abf87f9af48149972eeb851ecaea679911da040",
      "tree": "a6289a39e6816d933125cfd4f444a7eacc713162",
      "parents": [
        "0ab4d86643dfb668a583c13b8bd61b589dbe8602"
      ],
      "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": "bfd79f2a8e795f304062e22756c72d995af7a0e6",
      "tree": "8d70fc3dfd35cdee8f44cc0f42809fe0748460a5",
      "parents": [
        "0ab4d86643dfb668a583c13b8bd61b589dbe8602"
      ],
      "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": "0ab4d86643dfb668a583c13b8bd61b589dbe8602",
      "tree": "0afef39776758d266b256cb209dad51a6485edb1",
      "parents": [
        "2217a40453b4b13232be77121bde76d6f31be012",
        "6507d14c6d10f93d390de62b9eed267f9b544985"
      ],
      "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": "6507d14c6d10f93d390de62b9eed267f9b544985",
      "tree": "c0eb8464f26a5843d170bc9ec4cd047d7c4fbbec",
      "parents": [
        "e51d8b3ba4533b7f94345a97e3cc633dc7b31f12"
      ],
      "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": "2217a40453b4b13232be77121bde76d6f31be012",
      "tree": "438d7e8d76f6117e630f99d0353291a74452e6bd",
      "parents": [
        "0695ea9ff78bd1ef6e0bc2b05d1f6332c7214621",
        "5c4cc0d99d3b1cb35c5d7c237272ee53142745fb"
      ],
      "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": "0695ea9ff78bd1ef6e0bc2b05d1f6332c7214621",
      "tree": "1e88da72ed376ffd4ad11b3fcacbf221ad1ab125",
      "parents": [
        "e51d8b3ba4533b7f94345a97e3cc633dc7b31f12",
        "a556c4822fc205db0d27834ba5b637c351d73ffa"
      ],
      "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": "a556c4822fc205db0d27834ba5b637c351d73ffa",
      "tree": "814471eaca96e0c8e7237563ff3f303171ba8546",
      "parents": [
        "d573622dc001c23223cb26b1f55fb75be189e77d"
      ],
      "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": "e51d8b3ba4533b7f94345a97e3cc633dc7b31f12",
      "tree": "580983b06e84372f0d7edb6097473b7781dbc6bb",
      "parents": [
        "d573622dc001c23223cb26b1f55fb75be189e77d",
        "7cd58537932ef6f481f68be0b9c597a89cebdfec"
      ],
      "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": "5c4cc0d99d3b1cb35c5d7c237272ee53142745fb",
      "tree": "96c55aba5ce8363f33a05641f0a4be8ed09128c9",
      "parents": [
        "d573622dc001c23223cb26b1f55fb75be189e77d"
      ],
      "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": "7cd58537932ef6f481f68be0b9c597a89cebdfec",
      "tree": "02a57bed3a2de95c9eac0375cb282c6ad85a5eea",
      "parents": [
        "bf04b5860182d8f4130dcb5d6d88ee68a58c99cd"
      ],
      "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": "d573622dc001c23223cb26b1f55fb75be189e77d",
      "tree": "48ed99063098b017143f92560fe2eeabed8e8dc5",
      "parents": [
        "8602e5501a653a00e2f82d6fd3f7558382fea1dd",
        "c9b2e20f7c9a71e07ef398152709c76079decbcd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 04 22:38:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 04 22:38:34 2013 +0000"
      },
      "message": "Merge \"Miscellaneous cleanup\" into jb-mr2-dev"
    },
    {
      "commit": "8602e5501a653a00e2f82d6fd3f7558382fea1dd",
      "tree": "38cc96bcb48f5bfcd8cd0b9c4a27b293fa176125",
      "parents": [
        "bf04b5860182d8f4130dcb5d6d88ee68a58c99cd"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 04 13:05:22 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 04 13:05:22 2013 -0800"
      },
      "message": "Modified udptest to sync time across devices.\n\nChange-Id: Ib055cd8ab5931395907d017331e27f5d781d7019\n"
    },
    {
      "commit": "c9b2e20f7c9a71e07ef398152709c76079decbcd",
      "tree": "7e3cbee883fbe1462e24a31b8b4af5a5911e8276",
      "parents": [
        "bf04b5860182d8f4130dcb5d6d88ee68a58c99cd"
      ],
      "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": "ea2839f133b989b770cc5f093aca4754e5523599",
      "tree": "529ff6302b328bf49337adb4e1d31bad6771a76d",
      "parents": [
        "487422017767078980bc7435f05ea2b58601b6f4",
        "c0048178a1d312e7e05557ba99becd6a89b9e97a"
      ],
      "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": "c0048178a1d312e7e05557ba99becd6a89b9e97a",
      "tree": "374bc9528681b6bc179ca02dfcf8ca0d8afc48c5",
      "parents": [
        "ceb83b8d8919dc778402bf610c073987d4f9f89b",
        "d01c148195283d6bc68e2bd1486380f118d89e00"
      ],
      "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": "d01c148195283d6bc68e2bd1486380f118d89e00",
      "tree": "b3cb31c334d9875b1f9473be7e31611966cc1455",
      "parents": [
        "12834fe289e8173e94f31603fa6d313abe56ad70"
      ],
      "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": "fa74de2d0f633df0a88c69b8733c8deec85ac0ae",
      "tree": "4b7f8d85882eb025c5bed281e9b14bd19b797aaa",
      "parents": [
        "eed157dcfea88cc7b71524258a112ebf49ad7a05",
        "ceb83b8d8919dc778402bf610c073987d4f9f89b"
      ],
      "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": "eed157dcfea88cc7b71524258a112ebf49ad7a05",
      "tree": "f2688d81caa34807d5e17ce926d20c9d0543d63b",
      "parents": [
        "b99c5b8eebb35133a08c46b015624bd4c4a6c477",
        "ccf51ec41652a7e2db8cbee37bca91a95908d5ff"
      ],
      "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": "8b5c4ec7bbf253eb704094ab6b04f58923f67994",
      "tree": "1abc45a9ded12752e9d2105129e852397702a5ac",
      "parents": [
        "2c86f533c622e175b3ed77f40216a0891f9cc785",
        "c073ba525404f3416c2824c435d3d926a9892f1b"
      ],
      "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": "ceb83b8d8919dc778402bf610c073987d4f9f89b",
      "tree": "84198308f5db6262b1222f0e0fd3d6eb8f220637",
      "parents": [
        "ccf51ec41652a7e2db8cbee37bca91a95908d5ff",
        "8298cd4d7e99648f277215bf981fdef78bc19e45"
      ],
      "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": "ccf51ec41652a7e2db8cbee37bca91a95908d5ff",
      "tree": "64162e27cfb8569c4224bafe77b395335f51d346",
      "parents": [
        "801726efb2dcc6ea19e9f55c7c43fe41f0c6643e",
        "5c824472f7cec8a3634838f7d88ffa9ccc7fc8e6"
      ],
      "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": "68189471332964a65f0d1f47cda7724c562c566d",
      "tree": "6edd7c2af8ccfa830e5b0b670df81686e6f03a56",
      "parents": [
        "ceb388d6c03c38b96dc41c0ea4804b749aa077c4",
        "801726efb2dcc6ea19e9f55c7c43fe41f0c6643e"
      ],
      "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": "801726efb2dcc6ea19e9f55c7c43fe41f0c6643e",
      "tree": "547295c3a263dc005ae2cc1fca0bc1773fb5d4e2",
      "parents": [
        "c3afe5591a5c3a1aaf1cdcdeded75f6cff931569",
        "c30a88a273b47bef6728ae1dddea11641090939a"
      ],
      "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": "b39f30b0a4902ea0f28454885785da4b2629fe25",
      "tree": "c4042ba7bf201f8d4ac726e876f30cc168f0d032",
      "parents": [
        "b4ac0ea6c45c04ac3e69d6b2243cfec58e858495",
        "ceb388d6c03c38b96dc41c0ea4804b749aa077c4"
      ],
      "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": "ceb388d6c03c38b96dc41c0ea4804b749aa077c4",
      "tree": "0639ba70ce330094a9fa71ba4577eece6d4dadb1",
      "parents": [
        "0894bfb78b7872570b94d0b8d23ebbf6a8b51d35"
      ],
      "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": "2b56065a51c49a6235ac974c033c5751e8055869",
      "tree": "9542d497e722bfa9caa041ea6385d5e70ed6a754",
      "parents": [
        "99c2f923f6b04efffe949d1daf9cb7148e3cc201"
      ],
      "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": "feb2179f15bde8241814c8c35f8dace13a923ee7",
      "tree": "9d8e325d2d38e6366944f186008accea0fb123b5",
      "parents": [
        "fc900c922e219771d0cd3c075720d90026e1ca4a"
      ],
      "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": "8298cd4d7e99648f277215bf981fdef78bc19e45",
      "tree": "35aae19be3c9cc90b9aaecd0d3b793c6abfdac1b",
      "parents": [
        "c3afe5591a5c3a1aaf1cdcdeded75f6cff931569"
      ],
      "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": "7aa1237287c43aca1c6bab776573062a66ebd154",
      "tree": "c5da7b394fa5fabd47befc52a45e093b99b667e6",
      "parents": [
        "ab89ac209fd1c3b0a2227168a48d7f3ae9bc43f3",
        "1a2952aee048ca7b1765e2bc09ebe9aeddaeafa3"
      ],
      "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": "1a2952aee048ca7b1765e2bc09ebe9aeddaeafa3",
      "tree": "8e63f996a20f020e0af736eab89d632204c2c631",
      "parents": [
        "05f625c46b992ab66b8d1527a366fe2746b4e3c7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 14 17:11:27 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 15 12:47:35 2013 -0800"
      },
      "message": "Refactoring: Rename SurfaceTextureClient to Surface\n\nChange-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830\n"
    },
    {
      "commit": "ab89ac209fd1c3b0a2227168a48d7f3ae9bc43f3",
      "tree": "dda17a3e4149815397c7bef198e64bc81dee3552",
      "parents": [
        "05f625c46b992ab66b8d1527a366fe2746b4e3c7"
      ],
      "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": "05f625c46b992ab66b8d1527a366fe2746b4e3c7",
      "tree": "d1279615e941531ec3a7d49f49469b32a836aae5",
      "parents": [
        "7deec82fbe9f73da5488a0ac4732122a505602cb"
      ],
      "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": "a7db81e243d33485eb0f6f5703b184d6a853fb87",
      "tree": "82b017a4c77a82fca62571eccaa3723ee93738d1",
      "parents": [
        "b4698f79230bbee15936641d951d49655f9e6da5",
        "f98ab74cdc06c1978762cb99d7b28061bc7d1044"
      ],
      "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": "f98ab74cdc06c1978762cb99d7b28061bc7d1044",
      "tree": "bbd3556267ecabf7f2646b54640439d067232546",
      "parents": [
        "cd27b0798f6abb34e464acc7c7e97e066cd3c6c7"
      ],
      "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": "b4698f79230bbee15936641d951d49655f9e6da5",
      "tree": "062ab180ae7e2c918cbe9f7561c3ecc75d7ec407",
      "parents": [
        "cd27b0798f6abb34e464acc7c7e97e066cd3c6c7"
      ],
      "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": "4f1732b8068970b368a89271158ca29daf25650e",
      "tree": "0444520a23aa61553f9cf8bb67ee0f8127096b6a",
      "parents": [
        "272ab546940054ad7991bef4b3a36f15175721cd"
      ],
      "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": "272ab546940054ad7991bef4b3a36f15175721cd",
      "tree": "32635746bbb3c6f4b4297754d0d388fae41c6574",
      "parents": [
        "513b8b238caa52f8ddf5c85109dbf362c515185f"
      ],
      "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": "513b8b238caa52f8ddf5c85109dbf362c515185f",
      "tree": "84ba4cbf3bbdd3630ba43bfc7c0f9e75a5a2fc92",
      "parents": [
        "41c71f20e71967f3205818103fa35c1aeefb3e83"
      ],
      "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": "41c71f20e71967f3205818103fa35c1aeefb3e83",
      "tree": "189f4927694dd612b7c2a3bebad963351e65b73f",
      "parents": [
        "621eb7b975a77d9ff553705952235e3236b9c7e9",
        "6c6bb9873f55853fe74d8f45ad3ae116636d8be7"
      ],
      "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": "621eb7b975a77d9ff553705952235e3236b9c7e9",
      "tree": "84ba4cbf3bbdd3630ba43bfc7c0f9e75a5a2fc92",
      "parents": [
        "7e0b88bca060deb0cd499d528ff88ac9d4a7b954",
        "0a694951c00f2135c8968fd2205f71899997a8ad"
      ],
      "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": "0a694951c00f2135c8968fd2205f71899997a8ad",
      "tree": "dfad37d49a5599e9e740a9563bb6310f2874e78e",
      "parents": [
        "92b2bbbb79eb89fe4262c354e8d183c2ba325111"
      ],
      "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": "7e0b88bca060deb0cd499d528ff88ac9d4a7b954",
      "tree": "9d91ac59f85ff3db800abb9da5e9bda622d96661",
      "parents": [
        "26b0a9d007e77e088af9ff3810734728f0558e85",
        "a2eb22c1de262aa3fa7c356537ac2fe165afdf3d"
      ],
      "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": "26b0a9d007e77e088af9ff3810734728f0558e85",
      "tree": "db2d5ec3573f66d90aaaa91f83fc1556245c9558",
      "parents": [
        "a0dd006834f4a424b67773ab6724e961a61de923"
      ],
      "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": "a2eb22c1de262aa3fa7c356537ac2fe165afdf3d",
      "tree": "f57c26037ae32118055eb48bb8ad8275faa55841",
      "parents": [
        "a0dd006834f4a424b67773ab6724e961a61de923"
      ],
      "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": "6c6bb9873f55853fe74d8f45ad3ae116636d8be7",
      "tree": "ad9677a0baca6d473c02588587385bd1858d2614",
      "parents": [
        "a0dd006834f4a424b67773ab6724e961a61de923"
      ],
      "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": "a0dd006834f4a424b67773ab6724e961a61de923",
      "tree": "570bd3e2fcdfb325c214b6659c26e9f1baef5e3b",
      "parents": [
        "ba021d15cf7bc964bc813688e33d34845bfd89ea"
      ],
      "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": "ba021d15cf7bc964bc813688e33d34845bfd89ea",
      "tree": "8ae71eb381abe7a77d675563586f513efdd642cf",
      "parents": [
        "599b9655ddf95cdf6cb99970ce03c632bb2a576b"
      ],
      "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": "599b9655ddf95cdf6cb99970ce03c632bb2a576b",
      "tree": "8a8230f39eaca8df1407c1a3d0dc65ee19f06549",
      "parents": [
        "fba60daf77cc74a13ae3bf4b0e9925dd2ee4470c"
      ],
      "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": "fba60daf77cc74a13ae3bf4b0e9925dd2ee4470c",
      "tree": "03c491b66972ce99a18d60511843d37ff2a4a80a",
      "parents": [
        "b50e83eca302a12f0fced6e7bab1b8617d63deaa"
      ],
      "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": "b50e83eca302a12f0fced6e7bab1b8617d63deaa",
      "tree": "58992eeb6e5b4edef4a76e180c4e99be694754d9",
      "parents": [
        "0df36ec3303c2c6bf9b42c07945ac8bd234153f3"
      ],
      "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": "0df36ec3303c2c6bf9b42c07945ac8bd234153f3",
      "tree": "558d8e8d18ce64e84114d3b3d53209c0b4e27693",
      "parents": [
        "ec0c597cabf169ca646bcea5faac1bd81ed4484d"
      ],
      "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": "ec0c597cabf169ca646bcea5faac1bd81ed4484d",
      "tree": "eb922e648c110d7593b145f37cd3ef09027b0f68",
      "parents": [
        "3c7f8b48fcae6f4b41b66c86008170166e43b428"
      ],
      "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": "3c7f8b48fcae6f4b41b66c86008170166e43b428",
      "tree": "f96f734b550e2461f4a67a5a4353792b1c82be75",
      "parents": [
        "198a893671ce80d951625fe328a92073306660d0",
        "9575c96b6e418914e2ffc6741ecc8d71e3968dbe"
      ],
      "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": "9575c96b6e418914e2ffc6741ecc8d71e3968dbe",
      "tree": "1fafdf4d3150799cf9a4266919bf069b7f007c91",
      "parents": [
        "84ca0414fedea2dfe51607b422f6227e1c4f0d7f"
      ],
      "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": "198a893671ce80d951625fe328a92073306660d0",
      "tree": "065bd27a0fd5617eb638f379fb9f30bf6620f460",
      "parents": [
        "84ca0414fedea2dfe51607b422f6227e1c4f0d7f"
      ],
      "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": "84ca0414fedea2dfe51607b422f6227e1c4f0d7f",
      "tree": "eb58e3ec0c03c0f46e7a6e00b946cab78178b731",
      "parents": [
        "d62bb275f095d1a2e939a22e7eeaea42ac154bd4"
      ],
      "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": "d62bb275f095d1a2e939a22e7eeaea42ac154bd4",
      "tree": "dd895f6340cbfa966bc3cfc6c663f00705d69d22",
      "parents": [
        "f85f64f9e55fc104a0ac4e9b09680f2dfc836449",
        "7a33b7740412accf6a1cc912686c8d0acfb2a883"
      ],
      "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": "7a33b7740412accf6a1cc912686c8d0acfb2a883",
      "tree": "42834eb348b13f8f059c119a64365fb7fc19f594",
      "parents": [
        "b5f25f005bc1d3ae35f45b58c88345e183dc336d"
      ],
      "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": "f85f64f9e55fc104a0ac4e9b09680f2dfc836449",
      "tree": "aa329c12d6e5f12f76ad6bdb0405e1df319f99c9",
      "parents": [
        "a0216af1a45b4c657a5801b766ec34a82fac1b3e",
        "b5f25f005bc1d3ae35f45b58c88345e183dc336d"
      ],
      "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": "b5f25f005bc1d3ae35f45b58c88345e183dc336d",
      "tree": "4c8557d59ae426eb7dc7467d8bf799f059a4f30d",
      "parents": [
        "20ea4b429237f6845a833994bcee8f86791e8973"
      ],
      "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": "a0216af1a45b4c657a5801b766ec34a82fac1b3e",
      "tree": "a07cdb30af5365237b9744c41279309490d18514",
      "parents": [
        "6bb6f2f9cba46aa2b853357a139ae5166c5b6713",
        "7cc0c29d6a7b76520ec588437ab51d5b8eac9ebc"
      ],
      "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": "6bb6f2f9cba46aa2b853357a139ae5166c5b6713",
      "tree": "fa1dc25eb563ac4406ca4a7a0c8b87dbf64ece74",
      "parents": [
        "20ea4b429237f6845a833994bcee8f86791e8973",
        "a77c496d4520f25b7b337d32ebd9681d8ea0f7bb"
      ],
      "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": "a77c496d4520f25b7b337d32ebd9681d8ea0f7bb",
      "tree": "286d828a212c5b3040c072257cc49e0ab76865b0",
      "parents": [
        "3d6aa43575ae3342a93f88dd035f299e99554797"
      ],
      "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": "20ea4b429237f6845a833994bcee8f86791e8973",
      "tree": "4c247e5ef0ced60db22f6002a5b02359c5559323",
      "parents": [
        "59686720182dcaa1a1a4757964df38c16f1a5246",
        "2fa05230219f72118388f3a350b1239db1299647"
      ],
      "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": "2fa05230219f72118388f3a350b1239db1299647",
      "tree": "d663d5876d9764c797ff14529948a099c2f5fd7c",
      "parents": [
        "3d6aa43575ae3342a93f88dd035f299e99554797"
      ],
      "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": "7cc0c29d6a7b76520ec588437ab51d5b8eac9ebc",
      "tree": "80a3b23e12bc27b452d6e037bcbe7055e5394a02",
      "parents": [
        "08aa0bc912696ba22c10a3429b51b04c21c02944"
      ],
      "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": "08aa0bc912696ba22c10a3429b51b04c21c02944",
      "tree": "7aab7c050d5168430f1ceee12f7c9ab82b8712ea",
      "parents": [
        "9e58b552f51b00b3b674102876bd6c77ef3da806",
        "aa65ddb06862fa542c9ec8d556bd3e01bf4c32b2"
      ],
      "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": "a416756864e2c7750d59d967ec2185532fa5c2e0",
      "tree": "8eaae79c575fa6925b9f279adcab5dd8911653da",
      "parents": [
        "92b2bbbb79eb89fe4262c354e8d183c2ba325111",
        "6f1c1918d0dfece10f728711b055441e4d135c73"
      ],
      "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": "aa65ddb06862fa542c9ec8d556bd3e01bf4c32b2",
      "tree": "4d4384b0461c336983347911666e9c26d186aadc",
      "parents": [
        "3d6aa43575ae3342a93f88dd035f299e99554797"
      ],
      "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": "5c824472f7cec8a3634838f7d88ffa9ccc7fc8e6",
      "tree": "86d6c06bb24209e147f0230e57e03e41f79ed7f2",
      "parents": [
        "12834fe289e8173e94f31603fa6d313abe56ad70"
      ],
      "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": "c30a88a273b47bef6728ae1dddea11641090939a",
      "tree": "10166c7cc56d4479b37c1fb3b8cd509699dcd5bc",
      "parents": [
        "12834fe289e8173e94f31603fa6d313abe56ad70"
      ],
      "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": "3d6aa43575ae3342a93f88dd035f299e99554797",
      "tree": "457c9994632ea32728c854fd187d90eb43bc1e09",
      "parents": [
        "a6a88d9c445e261972c2433254e0a996336e78a4",
        "0fcdb7271e1a25bc501ead6093ab1ae2667fdd47"
      ],
      "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\""
    },
    {
      "commit": "0fcdb7271e1a25bc501ead6093ab1ae2667fdd47",
      "tree": "6c41167d4c37e13cf90b027450dfe99a397e5f41",
      "parents": [
        "1bd947a7c99853ad4ee67d59db89524be1e5acfc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 30 11:35:39 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 30 11:35:39 2013 -0800"
      },
      "message": "Actually display something on screen when instantiating a wfd sink via\n\nthe wfd commandline tool.\n\nChange-Id: I26466efb95a5837a14d77d6581e0777038d31d95\n"
    },
    {
      "commit": "a6a88d9c445e261972c2433254e0a996336e78a4",
      "tree": "3bcb34c468d9f0f525fb68dbb237e5b709a03465",
      "parents": [
        "1bd947a7c99853ad4ee67d59db89524be1e5acfc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 30 10:41:25 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 30 10:41:25 2013 -0800"
      },
      "message": "Plumbing to reflect minor changes in the HDCP module API that allow for\n\nsupport of _decryption_ modules in addition to what we already supported.\n\nChange-Id: Ic37b87dc170ba8def3817991d25df798f21e950b\n"
    },
    {
      "commit": "1bd947a7c99853ad4ee67d59db89524be1e5acfc",
      "tree": "6453bb241eb48b994605d43ad835047a8da31ab3",
      "parents": [
        "f96774ecd7ebff4d7cfa2516d5c92293a35e9aa3",
        "94a483bf2bd699275673d9cd57cb125d48572f30"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 29 18:32:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 18:32:23 2013 +0000"
      },
      "message": "Merge \"Squashed commit of the following:\""
    },
    {
      "commit": "f96774ecd7ebff4d7cfa2516d5c92293a35e9aa3",
      "tree": "4cbd67dec405c660031260078cbcf562d19df791",
      "parents": [
        "70e6cb33c82b4dc087e8aa91d0bf8d7ea367d5e9",
        "0f6675d5fdf15d4b8765545fb6a351138acccdf6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 29 18:30:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 18:30:54 2013 +0000"
      },
      "message": "Merge \"ACodec Fix.\""
    },
    {
      "commit": "94a483bf2bd699275673d9cd57cb125d48572f30",
      "tree": "3896a7d6691cdae1607bd87dff011f53ef5aea3b",
      "parents": [
        "2d45dbd1910a7e51d383e8583017e6f26cd3498a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 29 09:22:16 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 29 10:30:47 2013 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit f2c38e5cf8cee3b597c744c9d6a9c0969ac8599a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jan 28 16:33:07 2013 -0800\n\n    Proper support for video format selection/negotiation.\n\n    Change-Id: I7db86cef939d63b8064be1c74de9ad78e85d45d9\n\ncommit 488023b7bad086692ffe942114fa3cc0e59a16c0\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jan 28 11:21:23 2013 -0800\n\n    Sink now notifies clients once it is disconnected.\n\n    Change-Id: I2f0a458ef1ec30dda1272ad5a013fee4ee70edc9\n\ncommit 783932e40dd904aa531c263ad51280d9ca814dcb\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 18 15:03:40 2012 -0800\n\n    Alternative DirectRenderer implementation.\n\n    Change-Id: I307beb913d7a61cb938bcb02696cc2e82d2b8b07\n\ncommit 1935cc9a87824aea71fc8ebe2162f62ec634ce5a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 18 10:24:27 2012 -0800\n\n    Experimenting with wifi sink timing.\n\n    Change-Id: I059bae9762cf11777666988a8b4ab2012b5807be\n\ncommit a859ee1eadd6a1d6a080667917e8b102c3770d61\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Nov 15 11:16:30 2012 -0800\n\n    wfd sink update.\n\n    Change-Id: I026dfc580be92aa40dbbe7c1bc061fadf3b08be8\n\nChange-Id: I191d3d7015869ca99254d813d074328fb5b2f479\n"
    },
    {
      "commit": "0f6675d5fdf15d4b8765545fb6a351138acccdf6",
      "tree": "b406517c6ad66a8264b85dbe8eafd93f7d61d650",
      "parents": [
        "2d45dbd1910a7e51d383e8583017e6f26cd3498a"
      ],
      "author": {
        "name": "SeungBeom Kim",
        "email": "sbcrux.kim@samsung.com",
        "time": "Wed Jan 16 15:34:00 2013 +0900"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 28 12:22:30 2013 -0800"
      },
      "message": "ACodec Fix.\n\nBug: 7961269\n\nChange-Id: Ie12530f89dd96dbce82e873de0c2310490390c34\nSigned-off-by: SeungBeom Kim \u003csbcrux.kim@samsung.com\u003e\n"
    },
    {
      "commit": "6f1c1918d0dfece10f728711b055441e4d135c73",
      "tree": "e82c0166e895f9c61c11ff0800d2871298e63b30",
      "parents": [
        "11d8dfcc063425ae7d59229f54b6752fd8987c10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:31:41 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 25 15:12:14 2013 -0800"
      },
      "message": "Add media.log service based on NBLog\n\nChange-Id: Ie45093df6ac9a739d05c8d408fab52a9a8a27e7f\n"
    },
    {
      "commit": "11d8dfcc063425ae7d59229f54b6752fd8987c10",
      "tree": "246288e94716d9f9ba17c078cdfe93831fd7e888",
      "parents": [
        "0bf43848adb00922122b0a0eed2fa0318bde8317"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 14 14:53:13 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 25 15:01:24 2013 -0800"
      },
      "message": "Add non-blocking event logger NBLog\n\nChange-Id: I6c136cf3d7f46a8af84c69ecfc199dab394c10dc\n"
    },
    {
      "commit": "2a330d6cbb25f0cdd6208aeee53b4a3b88dae3b0",
      "tree": "ee5cf0c2ca89c31227b665448c426980d699c209",
      "parents": [
        "5faf610fa384a81dbefb7ac67d2452216e3acead"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:17:05 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:24:49 2013 -0800"
      },
      "message": "Remove obsolete audioflinger reference\n\nChange-Id: I9ae754c908f3b0102c3828c71d6f542851a74341\n"
    },
    {
      "commit": "2ba042ff8a8bb5aa0320580119771e11e64ba2cd",
      "tree": "830261e009471e01dc99cbafdbb6e5e5ed7d0170",
      "parents": [
        "2e4664677d72ce54201d3fd0beb0e10280add93c"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Sep 25 20:22:25 2012 +0900"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 17 14:33:21 2013 -0800"
      },
      "message": "Bug fix: set \u0027und\u0027 as default metadata language info for srt.\n\no Previously, it leaves language code empty and it is inconsistent with\n  other code which gives \u0027und\u0027. As a result, selected SRT track returned\n  empty language info. With this fix, it returns \u0027und\u0027.\n\nBug: 7227230\n\nTESTED\u003druntest -d cts-media -c android.media.cts.MediaPlayerTest -m\ntestGetTrackInfo\n\nChange-Id: I225848f029637dd782c376e0d770dddd5c849550\n"
    },
    {
      "commit": "2e4664677d72ce54201d3fd0beb0e10280add93c",
      "tree": "7368a987e0b7a636791798fe22da6b7370b9ce1c",
      "parents": [
        "7ac90e913d96e49e636b02f2c3984c71080dafff"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 10 14:26:24 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 10 14:52:24 2013 -0800"
      },
      "message": "Fix AudioRecord\n\nBug: 7965744\nChange-Id: Ic024e7fb32f7459b8093c2cf6cd5752aade21ddb\n"
    },
    {
      "commit": "a589764c3c0617c7a8996e929ce2d6db1cc01d77",
      "tree": "f4e107e86ab093909990bfa02ff9c67b09044085",
      "parents": [
        "f78f2629f5f6f5fc37a2089a85107fed97f12192"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 04 16:57:33 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 04 16:59:27 2013 -0800"
      },
      "message": "Fix bug in AudioRecord() constructor\n\nIt was calling set() with wrong parameter list.\nThis goes back to commit be916aa1267e2e6b1c148f51d11bcbbc79cb864c from 2010.\n\nChange-Id: I2f6917765baf58260bf35e89a2cc59c199734ff6\n"
    },
    {
      "commit": "6f90c2b99cc6ec90c0e9a175d795edaf22f9d5bd",
      "tree": "46753e1e575eff85921b9701089c40f6f7fb85ef",
      "parents": [
        "d5681bc9a38fe4cd1d591e6ae62b9c68fb851041",
        "cd2d263116576dc9770d31bb792e7cf2d6840b53"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Dec 28 09:46:54 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 28 09:46:54 2012 -0800"
      },
      "message": "am cd2d2631: am b54cedab: Merge \"Use default values when MPEG4 audio config parsing fails.\"\n\n* commit \u0027cd2d263116576dc9770d31bb792e7cf2d6840b53\u0027:\n  Use default values when MPEG4 audio config parsing fails.\n"
    },
    {
      "commit": "d5681bc9a38fe4cd1d591e6ae62b9c68fb851041",
      "tree": "88d51865d4e4f98d05408975762b85894050e6b7",
      "parents": [
        "49d24d3fcd01aef0ec1fa4abd9c1b85473f64c0f",
        "e3aa659e9cee7df5c12a80d285cc29ab3b2cbb39"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 21 15:04:30 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 21 15:04:30 2012 -0800"
      },
      "message": "Merge \"Start isolating control block accesses in a proxy\""
    },
    {
      "commit": "cd2d263116576dc9770d31bb792e7cf2d6840b53",
      "tree": "e5295b8e0efb8a7233c398aabfa0fc18da9b70cb",
      "parents": [
        "9c891ca36a7f2acecd70d41ff39a2025048bb0b1",
        "b54cedabdf0261211241e2f3af09c75cffd911ed"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Dec 21 10:05:52 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 21 10:05:52 2012 -0800"
      },
      "message": "am b54cedab: Merge \"Use default values when MPEG4 audio config parsing fails.\"\n\n* commit \u0027b54cedabdf0261211241e2f3af09c75cffd911ed\u0027:\n  Use default values when MPEG4 audio config parsing fails.\n"
    },
    {
      "commit": "49d24d3fcd01aef0ec1fa4abd9c1b85473f64c0f",
      "tree": "b2803e0ba9269ce4513f41d1a37984450f6fbfd7",
      "parents": [
        "df84d70d1da102995a5f1591c4af7c1807e4acd8",
        "8d6cc842e8d525405c68e57fdf3bc5da0b4d7e87"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 21 08:09:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 21 08:09:11 2012 -0800"
      },
      "message": "Merge \"Remove unnecessary parameter\""
    },
    {
      "commit": "b54cedabdf0261211241e2f3af09c75cffd911ed",
      "tree": "4a6ec04010d7c3a7f4b341131ba50612bc36658e",
      "parents": [
        "2a55b5964c6ae167cc1bc57eca5ca7a1c4aa452c",
        "8af5fe5a2431522a7d30bc546dcd31c0c64db70c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 20 18:25:12 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 20 18:25:12 2012 -0800"
      },
      "message": "Merge \"Use default values when MPEG4 audio config parsing fails.\""
    },
    {
      "commit": "e21c339f8aea46f6d406ccff61828e26b1689435",
      "tree": "384e645aa722f623123d150cd65cde8ad0239f1d",
      "parents": [
        "ceabf0acaefeaf2696ca071dec92da607cd52758",
        "c8e07e483c116ecaca1c9c6991588607f1187b75"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 20 13:58:31 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 20 13:58:32 2012 -0800"
      },
      "message": "Merge \"Properly release any MediaBuffer references associated with the\""
    },
    {
      "commit": "c8e07e483c116ecaca1c9c6991588607f1187b75",
      "tree": "4f9ca0290687f3885b852eeeda210086bcd8944d",
      "parents": [
        "0fd58c9758d2083915864d3cc63df7495b497e52"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 20 13:49:34 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 20 13:49:34 2012 -0800"
      },
      "message": "Properly release any MediaBuffer references associated with the\n\nencoder input buffers on shutdown. This worked fine before for an orderly\nshutdown but didn\u0027t release all references in case of error.\n\nChange-Id: I0ea3eb26da76fbeb33cadf58d237b0c68a86ac4a\nrelated-to-bug: 7893090\n"
    },
    {
      "commit": "ceabf0acaefeaf2696ca071dec92da607cd52758",
      "tree": "4b794692410fe4dab2587cd2db14aea263e2d73c",
      "parents": [
        "e6b94a3328a3a72ccdbc4957a9dcae43c79064ed",
        "4c44e9fed87ff6363393f2559b150291242da247"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 13:07:07 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 20 13:07:08 2012 -0800"
      },
      "message": "Merge \"Ensure proper EOS behavior\""
    },
    {
      "commit": "4c44e9fed87ff6363393f2559b150291242da247",
      "tree": "3082997c20ed056ec25f71496a3c7a6a337a1a4e",
      "parents": [
        "0ebf429406d796df74f781dfe085ee73851fe2a1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 11:19:49 2012 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 11:19:49 2012 -0800"
      },
      "message": "Ensure proper EOS behavior\n\nIf a buffer is tagged with EOS but has data in it, decode that data\ninstead of ignoring it.\n\nChange-Id: Ie41c8485c3ad7fe7d9c64f0752c2e7601d91d602\n"
    },
    {
      "commit": "e6b94a3328a3a72ccdbc4957a9dcae43c79064ed",
      "tree": "d580f2e13a3fc3634e7c23db1f44b4d95cade75b",
      "parents": [
        "0fd58c9758d2083915864d3cc63df7495b497e52",
        "68c3de899f822acf3c735c681d206e852ad3821f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Dec 20 11:07:09 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 20 11:07:09 2012 -0800"
      },
      "message": "am 68c3de89: am df9cce64: Merge \"Allow multichannel FLAC files\"\n\n* commit \u002768c3de899f822acf3c735c681d206e852ad3821f\u0027:\n  Allow multichannel FLAC files\n"
    }
  ],
  "next": "68c3de899f822acf3c735c681d206e852ad3821f"
}
