)]}'
{
  "log": [
    {
      "commit": "8bd4d16aa5636e98522c07ae31236420788aa749",
      "tree": "62a6de2d5849abe614ad64ca600ee00b5df6b57c",
      "parents": [
        "bc69c8ba9a8fc881603669205a56d0ca1b572a95"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jan 10 17:36:57 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 11 20:58:57 2014 +0000"
      },
      "message": "Cap pts gap between adjacent frames to specified value\n\n- In the scenario of cast mirroring, encoding could be suspended\n  for prolonged periods. Limiting the pts gap to workaround the\n  problem where encoder\u0027s rate control logic produces huge frames\n  after a long period of suspension.\n\n- Repeat last frame a couple more times to get better quality\n  on static scenes.\n\n- Fix the timestamp on repeat frames (it was not set)\n\nBug: 11971963\nChange-Id: I1d68ab3d269874bf3921aa429a985c5f63e428c7\n(cherry picked from commit 94ee4b708acfa941581160b267afb79192b1d816)\n"
    },
    {
      "commit": "56ce726019f700a95ce5b45beebceadae4836e30",
      "tree": "4ad17b9ec996277e80861895fb1b20f2dc408b9d",
      "parents": [
        "a306ee6bc1aef463f8984be26b8a4214490b6c55"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu May 02 16:30:48 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Oct 03 16:12:45 2013 +0000"
      },
      "message": "IOMX: Add prepareForAdaptivePlayback method\n\nprepareForAdaptivePlayback is the fallback mechanism to support\nseamless resolution change for devices that do not support dynamic\noutput buffers.  It is up to the codecs to handle this appropriately,\nbut codecs that do not handle dynamic output buffers would\nrequest enough buffers up to the requested size in this method\nto avoid port reconfiguration on resolution changes.\n\nChange-Id: I58d4aa8ef1359ea3472735bbe9140c3132039b3d\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 10192531\nRelated-to-bug: 7093648"
    },
    {
      "commit": "a61285dcf1da8a2cf40c499ee3a7b9fc4d74ac58",
      "tree": "a360123ee73434ee45608b03a02d8fb6ff431c3b",
      "parents": [
        "1b832c3d8f2b1b24f9bc7025afd2b4a8b4e6c6f9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 31 13:50:42 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 13 10:11:46 2013 -0700"
      },
      "message": "Optionally repeat the previously submitted frame to the encoder\n\nif no new frame has been delivered by surface flinger within the timeout\ninterval.\n\nChange-Id: I282f1b726dfe5646b178d7858d6f5d4f5a264fde\n"
    },
    {
      "commit": "d0715867861c216e88a4a7523b6da8a3cb128724",
      "tree": "9b474094654a2dccb440fd9ca4a87f8afbdb9278",
      "parents": [
        "b08ab81bab9e8cd2e3a7fff02725a387070fd078"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Jul 22 12:57:43 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 06 13:19:26 2013 -0700"
      },
      "message": "IOMX: add updateGraphicBufferInMeta method for metadata mode\n\nThis is used to set the handle in the metadata buffer that is\nvalid in the mediaserver process, as well as to keep a reference\nfor the graphic buffers in BufferMeta.\n\nChange-Id: I46bb68d8bed894f357eeeb25368360d11b276634\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\n"
    },
    {
      "commit": "e40cda70eec141fa05cbcca1de420fdb22b98be6",
      "tree": "44ba825722026f73ceb0c27e5e58c47ab9e884fa",
      "parents": [
        "5478f3c44b9d6670261733953a71a8290fa70ae8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 17 13:55:26 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 17 15:27:31 2013 -0700"
      },
      "message": "Support \"suspension\" of a video encoder in \"surface-input\" mode.\n\ni.e. feed no more input frames to the encoder while suspended.\n\nChange-Id: I51391e18c1517548e869f8ddece19f4af37e78f9\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": "8f7f7ad54c698cb57a2a369cf1ae5b917853917b",
      "tree": "50bad78e439f16ab5502bf6ee1ee53d6c5b18534",
      "parents": [
        "f500abaa4a1456dfb0a269b9ca97d8e27562c09c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Mar 24 15:15:01 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Mar 24 15:35:17 2012 -0700"
      },
      "message": "remove jni.h include from IOMX.h\n\njni.h is not used in IOMX.h and is not available in pdk builds,\nremove it.\n\nChange-Id: I9bc8fd70f617942712d9f684c6fc927bf18be753\n"
    },
    {
      "commit": "d459b485c61bd3e7fd81c5cd3af8ada27fc3e8d3",
      "tree": "394810d0fda09babebb89e1eff80ec54509c5a14",
      "parents": [
        "bb62819aa34b0e89090ccc50e5915e25bc137583"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 31 11:16:24 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 31 11:16:24 2012 -0800"
      },
      "message": "Slighly improve the API to discover if the OMX stack is running in the local\n\nprocess.\n\nChange-Id: Idd3c2f0d4a9542af01a3fdfd3b0bfab90e083505\n"
    },
    {
      "commit": "b1d666f5cb555d135eb69e005e88a03330bbb54c",
      "tree": "573c9d484c210cfc7104d94f2f630cae0b70bb01",
      "parents": [
        "3c57859f03ce9257128e3b2cd29a906b8f9a6aa5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 19 21:14:13 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 19 21:22:19 2011 -0700"
      },
      "message": "Stagefright: idle OMX after ANW errors\n\nThis change fixes an issue in Stagefright where the state of an OMXCodec\nobject can get out of sync with the state of the OMX component.  In\nparticular, if one of the ANativeWindow functions failed and put the\nOMXCodec into the ERROR state, this would cause Stagefright to skip\ndoing the Executing -\u003e Idle transition.  Without this transition the\nfreeBuffersOnPort call would never be made, and the MediaBuffers would\nend up being leaked (which would also leak the Gralloc buffers they\nreference).\n\nBug: 5333695\nChange-Id: I85ea0cf92d18e7ef6d35c7d1e2a7b4e2c9745d34\n"
    },
    {
      "commit": "457116d3a01618acf9a875020ca5860551ba03a6",
      "tree": "16ea85295b56ef3cc8885c7507841505a9a744e7",
      "parents": [
        "9b186a44051d0ef7f4ca67150f204299b15a448e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 11 12:29:10 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 11 12:29:10 2011 -0700"
      },
      "message": "Support profile and level query for SW video decoders\n\nChange-Id: I9c20db128be96cd36cf2083e08e8c21f5e6d1fdf\n"
    },
    {
      "commit": "abf471f9d25f7a3104c5723657e3c6c329f3f08c",
      "tree": "064753a6f6df721871ae005c01373c75db90e692",
      "parents": [
        "94baecca5e14b083c46615a1bcf18ea6cf7cad46"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 04 21:09:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 04 21:09:55 2011 -0700"
      },
      "message": "Remove unused references to ISurface\n\nChange-Id: I542806b5c91c525ed7cde821f6963f1e020ddf1a\n"
    },
    {
      "commit": "e2ce6458659c6e1bad420357b61dc10cd8bbe2ab",
      "tree": "89a59a1cef847dc359dbf013f0c76d94f6363918",
      "parents": [
        "3911a720270fc0326accfa4a3df427a649a45487"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Feb 23 19:01:28 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Feb 28 12:12:20 2011 -0800"
      },
      "message": "Add an OMX IL API for querying buffer usage flags.\n\nThis change defines an OpenMAX IL API for querying from the IL component\nthe gralloc buffer usage flags that should be used to allocate the\nbuffers.  It also adds the Stagefright plumbing for using the new OMX IL\nAPI.\n\nChange-Id: I046b5e7be70ce61e2a921dcdc6e3aa9324d19ea6\nRelated-Bug: 3479027\n"
    },
    {
      "commit": "0a5ca668c6f7d45706e9aec4a1dfec0aacc6d233",
      "tree": "d9a1933cf2af87ad563e9220818c8d752b3a0379",
      "parents": [
        "6f9f029f7fc625bb2a1b448ad30a80a6a6a73b20"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 16 13:05:53 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 16 13:05:53 2010 -0800"
      },
      "message": "Remove all traces of legacy renderer support in stagefright.\n\nChange-Id: I17b8e0dbf53fca37c96830c41131b4bc0c24ca6d\n"
    },
    {
      "commit": "e870772a78ffe08b1c14a791e368f1499f1be0f3",
      "tree": "a443d9a157f12b32e524ae2953219d56dd3a770f",
      "parents": [
        "f83dd80384f70da1f6d36d60e831439ff7739ad7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Oct 20 17:38:41 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 21 14:06:17 2010 -0700"
      },
      "message": "OMX extension to support storing meta data in video input buffers during recording\n\nbug - 3042125\n\nChange-Id: I7543809fa4ff61d48da35eec6c2bd5eaa7e8cead\n"
    },
    {
      "commit": "83750eaf5a3f38c243a9e7eb81d4b2421e3a0d88",
      "tree": "3e986eeeff4dd2f5d7cb9ddb3c90a714be495f2e",
      "parents": [
        "9f2d258645826c999a93a4206df157fec2e3b0f2"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 30 16:48:38 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Sep 03 14:32:42 2010 -0700"
      },
      "message": "Add the new Stagefright ANativeWindow OMX codec API.\n\nThis change defines the two OMX_SetParameter calls that enable OMX codecs to\ninteract with ANativeWindows.  It also adds the plumbing to the IOMX, OMX, and\nOMXNodeInstance classes to use these new APIs.\n\nThis is try 2 for this change, after reverting the first one because it broke\nthe build.\n\nChange-Id: I94249b72bdb5d5719360f03d7935fcca4ece5028\n"
    },
    {
      "commit": "9f2d258645826c999a93a4206df157fec2e3b0f2",
      "tree": "02958abbfd19bf49e1235955bd20431cdd3b878e",
      "parents": [
        "9dd4931cca8e4a2fcbcabf4eb7078648e1c029cd"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 01 14:32:35 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 01 14:32:35 2010 -0700"
      },
      "message": "Revert \"Merge \"Add the new Stagefright ANativeWindow OMX codec API.\"\"\n\nThis reverts commit 8a643b411e1802977f742709113ce01b06a18e12, reversing\nchanges made to 73ea9beaf8eb3d0027e78cbc0ac5e626c3f8deb4.\n"
    },
    {
      "commit": "559dc605bfe2deb73ad718e0d5c5dc55e27c45df",
      "tree": "c98ca8836231a2cb5332e67f866f38ab9c811f4e",
      "parents": [
        "53bfd693c45278bf71cb5e184ffd3e95d52e04d8"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 30 16:48:38 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 01 13:07:08 2010 -0700"
      },
      "message": "Add the new Stagefright ANativeWindow OMX codec API.\n\nThis change defines the two OMX_SetParameter calls that enable OMX codecs to\ninteract with ANativeWindows.  It also adds the plumbing to the IOMX, OMX, and\nOMXNodeInstance classes to use these new APIs.\n\nChange-Id: Ibfbf893dc3513db0b3d3221bec5708c77287cddc\n"
    },
    {
      "commit": "213addfaf4b359c69da4e9b4490c511d116845bb",
      "tree": "a3a46a11cbb8b3a7ed2961a125ce712e52f0e490",
      "parents": [
        "a826028dc33a83538a2ac6bd13ca46a52de7a9be"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 10:41:35 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 11:24:26 2010 -0800"
      },
      "message": "The qcom OMX video decoders do not allocate output buffer memory at the time OMX_AllocateBuffer is called, wait until we received the first FILL_BUFFER_DONE notification until we rely on the buffer data ptr.\n"
    },
    {
      "commit": "570a3cb7582daa030cb38eedc5eb6a06f86ecc7f",
      "tree": "0c59c44899b4a3fbbe921171028fd193829affc7",
      "parents": [
        "dfaddcc81f27bb9de47edec469a4a5fb2309bd6a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 20 15:05:46 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 20 15:05:46 2010 -0800"
      },
      "message": "Fix no-copy-overhead OMXCodec implementation to actually work.\n"
    },
    {
      "commit": "7eaa9c9385535b651064e02d05a8ffa4b2359281",
      "tree": "da5f6ba264cd97c4fa08cdcc0666ca2b5cc7175f",
      "parents": [
        "a2ce85733c8e42c30927eefe3ff4e4bd36515041"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 15 15:28:19 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 19 10:57:57 2010 -0800"
      },
      "message": "Avoid unnecessary buffer copying if at all possible, detect if running in the mediaserver process.\n"
    },
    {
      "commit": "134ee6a324c35f39e3576172e4eae4c6de6eb9dc",
      "tree": "c402e0b47b926a0ed1bfee9fa2ef16822a19dd45",
      "parents": [
        "8ae1d0bdcef22f2bdd8d283e0e615f3ba6c3f4cd"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 16 09:30:55 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 17 09:28:15 2009 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 144b1c40e9cf08a584c50e1bef7ba3f287e81a4f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 16 09:28:23 2009 -0800\n\n    This H264 file shows a certain problem even better.\n\ncommit 3245f1f3b7471975aeeb824a756c987abd610f55\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 16 09:20:08 2009 -0800\n\n    Using only the QA testfiles now.\n\ncommit 074817eb3816c5dd70858a3594e3b92d799d873b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 15 16:17:39 2009 -0800\n\n    Yay, roles are back again now that the API is in place.\n\ncommit 6d847e4932cc38301ae27cb7283b7f1553a95457\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 15 13:01:20 2009 -0800\n\n    Added commandline option for specifying the random seed for reproducable tests.\n\ncommit 62ab37b26336eaa67e49791c41c996acb6acee3f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Dec 14 10:53:27 2009 -0800\n\n    When issuing a seek it is important that only the first MediaSource::read call has the seek option.\n\ncommit e77c46644b2fb6862bafa3569f7d304252074f1e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Dec 7 16:39:07 2009 -0800\n\n    Make sure the tests are actually built, sp\u003cOMXCodec\u003e becomes sp\u003cMediaSource\u003e\n\ncommit 6df56915bd55a9445b3c6f953d3cc251d81579b8\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 3 14:25:36 2009 -0800\n\n    Temporarily disable support for querying the roles of OMX components.\n\ncommit 31bb26930df9e3658dea684cedb4b0f1a06a4a88\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 1 13:36:52 2009 -0800\n\n    Disregard EOS events, slightly change the way the EOS flag on output buffers is handled.\n\ncommit 4c382fbc9aebee8197d5988d04378062809e7c48\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 1 09:37:24 2009 -0800\n\n    New random seek test for the codec tests. Fixed \"sticky\" end-of-output-buffers flag behaviour in OMXCodec.\n\ncommit c762eac3e44309592b61a168d66e091cf609fa03\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 3 14:13:43 2009 -0800\n\n    Fix a typo.\n\ncommit 50540a59b65c7d476b0193c7494cd75895e6ca6d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 3 09:48:35 2009 -0800\n\n    Some more fine tuning of the unit tests, make MPEG4Extractor less verbose.\n\ncommit 1157a7e52a0636706caa235abe16d2ff8a0b8140\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Oct 28 12:01:01 2009 -0700\n\n    Changes to the IOMX::listNodes API, this now returns the component\u0027s roles as well, unit tests now test all components in all supported roles by default.\n\ncommit 30fbf2d8c6cb927689f7ba75eb550a81e9df488a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Oct 26 09:45:26 2009 -0700\n\n    Initial check-in of unit tests for OMX components.\n"
    },
    {
      "commit": "318ad9c1d9d6515026dfc2c021359d27decaa7a1",
      "tree": "28a58c4e3f20528b01c2abd08ba5f62d8755650c",
      "parents": [
        "89e69da4d86348409994c9dafbbb2634ccd7c196"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 15 13:46:54 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 16 11:22:43 2009 -0700"
      },
      "message": "Reimplement the OMX backend for stagefright.\n\nBesides a major cleanup and refactoring, OMX is now a singleton living in the media server, it listens for death notifications of node observers/clients that allocated OMX nodes and performs/attempts cleanup.\n\nChanged APIs to conform to the rest of the system.\n"
    },
    {
      "commit": "36efa039efaae4526791336cb688032d22b34bec",
      "tree": "8bb2b193530f7c606475e2863be843eb8cce58e6",
      "parents": [
        "479ededc5b55e63ea9b425cbe465c93bb8b8b3dc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 11:02:27 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 14:21:58 2009 -0700"
      },
      "message": "Some decoders will return an error on OMX_EmptyThisBuffer to indicate that they don\u0027t support the media format, deal with this.\n"
    },
    {
      "commit": "1b84df1a0823fbcb9cec754311f53eaccfe85ae3",
      "tree": "d6f4de4d8cb283ed7dbb0a8b0f5f9c4626a24fc6",
      "parents": [
        "85cca02ebdc636e9b3ed5894503671fd043bf2a7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 12:49:11 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 12:49:11 2009 -0700"
      },
      "message": "Added an API IOMX::createRendererFromJavaSurface.\n\nThis api allows to instantiate a renderer by specifying the hosting java Surface object. This hides the implementation details of (java-)Surface, (native-)Surface and friends.\n"
    },
    {
      "commit": "e0f0b08aa692d15f3bfa19e10abfc84803c099b4",
      "tree": "703584f606b9719817bd5ff42a3979a7576c1551",
      "parents": [
        "152755d265427fb47d836f1022585afab61e0350"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 27 14:50:58 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 27 14:50:58 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 3fa5f3ce910f34da0cedb8bcce1bd593db7eb740\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Aug 27 14:48:54 2009 -0700\n\n    Getting rid of more code now obsolete with the departure of OMXDecoder.\n\ncommit e0d923ec0c7bb60bec8eb97739036a4c70c0feef\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Aug 27 14:33:06 2009 -0700\n\n    Remove obsoleted OMXDecoder class. OMXDecoder is dead, long live OMXCodec.\n"
    },
    {
      "commit": "693d271e62a3726689ff68f4505ba49228eb94b2",
      "tree": "dcc952183cfd766d385c25665571be967926cf89",
      "parents": [
        "59ecb64c9629ab02329f8240c85b820ee0c98a2e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 14 14:37:10 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 17 10:24:50 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 5bb012f0065f7ffaaeb4f569d71f0e3a8d6b19c3\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 14 10:40:08 2009 -0700\n\n    An attempt at fixing export using the qcom encoders. More quirks.\n\ncommit 0690e76bfa48118a68287ccf1bbfa82febaa620c\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 14 09:08:28 2009 -0700\n\n    Callbacks are now dispatched from a separate thread in OMX.\n\ncommit c6571a039526df29b6343f9a1971dbc019088c61\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Aug 13 15:42:25 2009 -0700\n\n    Massive API changes throughout stagefright, smart pointers everywhere.\n\ncommit 900612af6a0555664d9ba195112cd859491265f4\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Aug 13 13:33:12 2009 -0700\n\n    OMXCodecs now properly shutdown.\n\ncommit 96732f05e1b0603dcd1b11f16a23512592eeb4f5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Aug 13 12:04:04 2009 -0700\n\n    More work on JPEG decoding using the hardware OMX component.\n\ncommit 63839a073ac393e3a130434ba467969053b694ad\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Aug 12 13:13:31 2009 -0700\n\n    An attempt to drive the JPEG decoder OMX node.\n\ncommit 3ac2fe5ab2926eda81b2123610b2434c645294ff\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Aug 11 16:38:21 2009 -0700\n\n    Renamed StateMachine to OMXCodec and put it in its proper place.\n\ncommit 247da75a96bf8881956413023dd49a84d5b4f5b2\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Aug 11 16:06:19 2009 -0700\n\n    Statemachine is now a full-fledged MediaSource.\n\ncommit 045244f6771fa0b9b329495c953afda900a84b71\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 7 09:16:54 2009 -0700\n\n    Properly setup the input format when exporting to AMR audio.\n\ncommit 271b984cb32c5cd9e46e3f90ae121f334e4b8da9\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Aug 6 09:59:38 2009 -0700\n\n    Added some code to test audio encoding to the OMX harness.\n\ncommit 79af4748e4af33bd66d3fbac606e332a69741cf4\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Aug 5 14:36:22 2009 -0700\n\n    Merge the old OMXDecoder and the new, shiny, StateMachine code.\n\ncommit 91cf5dd77a8762bc10a0b2ffce35e3bbeb262231\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Aug 4 17:41:43 2009 -0700\n\n    A new harness to test OMX node compliance (and quirks).\n"
    },
    {
      "commit": "f4148b55c5d6f68b22462e3880015fefa91ae7c6",
      "tree": "9a698fe66dd72d29942954df156ac0cc80042b44",
      "parents": [
        "408b8e1073385d0d09bb96b9952f84731a0b4aeb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 07 12:01:29 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 10 12:58:05 2009 -0700"
      },
      "message": "Expose a variation of the createRenderer API that works on a plain Surface.\n"
    },
    {
      "commit": "408b8e1073385d0d09bb96b9952f84731a0b4aeb",
      "tree": "ebd01cb86b2e91ec91ee6b20907663cb514f511c",
      "parents": [
        "47f59cfe40b0ebb3afd6c39f97dcd1eac2e966f7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 07 13:45:06 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 10 10:29:40 2009 -0700"
      },
      "message": "Deprecate/remove now unused socketpair ipc communication in favour of exclusive binder use.\n"
    },
    {
      "commit": "8b938cdab5bd3d074d9b41bc2915fcfc11e47f27",
      "tree": "f2015fc5b3786ef4e1a3db436cd0897727be3569",
      "parents": [
        "81573ec97eaf631cc63eedceb928e123dafd593c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 31 11:52:50 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 31 12:48:53 2009 -0700"
      },
      "message": "The IOMX interface now instantiates IOMXRenderers to hide the details of hardware accelerated blitting.\n"
    },
    {
      "commit": "20111aa043c5f404472bc63b90bc5aad906b1101",
      "tree": "b8c69d66954b3bf1aee4f12d05deb387e38a9282",
      "parents": [
        "508a3b61c4bce835f721237ddd40922b61f069d7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 14 16:56:47 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 16 09:49:14 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 8d179995654c19d9094e51989dc84ed0deba6e04\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jul 14 16:30:40 2009 -0700\n\n    Protect stagefright code with BUILD_WITH_STAGEFRIGHT build-define.\n\ncommit 99b41acb58c34e8f024c30c833a09fd7b31c4e1f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jul 14 14:06:00 2009 -0700\n\n    OMX::list_nodes API, stagefright --list now lists all available OMX components.\n\ncommit 94a74c5b24aae6d7e446fff83d62ae3a57dc351b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jul 13 16:04:29 2009 -0700\n\n    Reenabled \"record\" commandline application to test encoding, support for h263 codec specific data when writing to .mp4.\n\ncommit d363dd74f611577567c66d25900d6264c306468c\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jul 13 10:59:58 2009 -0700\n\n    Make non-socket communication in IOMX the default.\n\ncommit e89fc82c4fd138c88339887baf72f1d0e67f8660\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jul 13 10:32:33 2009 -0700\n\n    The OMX interface now optionally supports communication through the binder only (no sockets involved)\n\ncommit 28611de11223fba65299787cdd33f7fdbd6a60a3\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jul 10 15:09:13 2009 -0700\n\n    Split off the logic to render to a Surface (not ISurface!) into SurfaceRender.{cpp,h}\n\ncommit c0cfa885faaeb17d3fc5436f6447b61708bd6fe1\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jul 10 12:21:46 2009 -0700\n\n    Fix display dimensions vs. decoded dimensions display issues, unfortunately breaks software rendering a bit...\n\ncommit ae209a2b5d09caed5dd383c910f238926aaa8fc6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jul 10 09:33:29 2009 -0700\n\n    Simple video decoder performance test in \"stagefright\" commandline tool.\n\ncommit 59fe7840111d6f46dd3c48f4950146aed962dbd2\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Jul 9 16:05:12 2009 -0700\n\n    StagefrightPlayer: Properly publish video dimensions by notifying the listener.\n\ncommit 51b6598f0e47be5e12d77f1d14e111e71c593638\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Jul 9 11:38:15 2009 -0700\n\n    MediaPlayerInterface::AudioSink now supports the specification of a callback for pull-based audio.\n\ncommit 31ce53375d748da3e7d30e993ce89dae97fd65ea\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jul 8 17:23:37 2009 -0700\n\n    Proper support for pushing audio to a specified AudioSink interface. Still not bulletproof: video falls behind frequently.\n\ncommit a23e312b10631a5d47f5c9831205beac6b84ab36\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jul 8 15:10:13 2009 -0700\n\n    IGenesisPlayer and friends are no more, java interface now uses local playback instead\n    of playing inside the media server process.\n\ncommit 42ee5c06ab5ba1c16f50472b0b26a0526635c73c\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jul 8 13:17:03 2009 -0700\n\n    MP3 extractor now supports seeking (only fixed bitrate files currently supported)\n\ncommit 96a790405763bfa738d1c6845c99a9fdf579b66f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jul 7 10:53:54 2009 -0700\n\n    Keeping up-to-date with new master-gl changes, removing CameraSource for now, removing unnecessary commandline utilities from the build.\n\ncommit 6c9dcb7c628c0347154dd7f37913a3a5f04deb99\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jul 6 16:40:02 2009 -0700\n\n    Finally take advantage of the fact that the Qcom OMX decoders already place the output buffers into memory accessible by the hardware yuv converter and avoid extra allocations and memcpys in that case. Split of the render logic into subclasses of VideoRenderer.\n\ncommit e8d46e81cffc15ffb0bdf03f511e4a4497ca7621\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jul 6 12:18:29 2009 -0700\n\n    Added a few more cases of valid MPEG4 files to the sniffer, fixed end of stream notifications in MPEG4 files.\n\ncommit 88bffc5ed4033a607080f8777a1c0ec9e3e079de\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Jul 2 12:25:03 2009 -0700\n\n    MediaPlayerImpl now properly pauses/resumes instead of tearing down the decoder chains and starting back up from the beginning.\n\ncommit 732aa0a87c7e8d8a10776b275712649954962414\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jul 1 14:58:56 2009 -0700\n\n    Remove pthread_mutex_* and pthread_cond_* in favour of Mutex and Condition.\n\ncommit 669e5944b2fe0542a3b8dba0c441a94503e99fb0\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jul 1 14:43:02 2009 -0700\n\n    Proper support for end-of-stream signalling of MediaSources.\n\ncommit afb038f2dc594c742e554b2d42b86ffc7434e3fc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jun 30 16:48:03 2009 -0700\n\n    Support for the \"sniffing\" of datasources to determine their probable mime type (along with confidence). Slightly refactored the MP3Extractor to share common code with the sniffer.\n\ncommit ed3644b8bd56807e1db4b32433a93a2467f1f3c5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jun 26 13:27:52 2009 -0700\n\n    I don\u0027t think prepare should automatically start the player.\n\ncommit 11eb9b49dc4a0819d366682817cba68613f4fe12\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jun 26 11:09:22 2009 -0700\n\n    Somewhat better timing information implemented in the MP3Extractor.\n\ncommit cab023a1751735c0ed26c8493498a91d8644c6c9\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Jun 25 15:41:56 2009 -0700\n\n    Initial checkin for support of mp3 content, extraction and playback. Media extractors now abstracted in MediaExtractor baseclass.\n\ncommit 40f4146bb3c647e56690dd9b0fa3ffdea60030dc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 24 10:41:12 2009 -0700\n\n    Make sure we only allocate surface buffers if there is video to be played.\n\ncommit 7f85e7d92fe81740e102e09905b19354f4ac178e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 24 10:19:32 2009 -0700\n\n    Clean up a failed merge and implement stub for new API in MediaPlayerBase.\n\ncommit f0e9d494a4c03402ea7b54891848ca5a50c421b2\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jun 12 15:38:03 2009 -0700\n\n    Support yuv420-\u003ergb565 conversion if hardware color conversion is unavailable.\n\ncommit 87223248b3099cd5261b94169f84cfd1eba56a8f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jun 12 09:35:56 2009 -0700\n\n    Remove unimplemented and currently unnecessary blocking option from MediaSource::ReadOptions.\n\ncommit e07e651f0325892b797f3eb64dbeca0f317afdfd\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 10 16:26:42 2009 -0700\n\n    Enable assertions in HTTPDataSource.\n\ncommit 0dc97adebea1721156880f4b3d5c70f8d50c53b2\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 10 12:34:39 2009 -0700\n\n    delete foo.\n\ncommit 7f05845dda496e7defee284d32509d127e785784\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 10 12:34:08 2009 -0700\n\n    added foo.\n\ncommit e432970c51eeec4e5d549bdb3e2d3e48ffb4f0e7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 10 11:44:31 2009 -0700\n\n    Make sure to initialize all fields in _all_ constructors... Use a Mutex instead of the raw pthread_mutex_t.\n\ncommit d6286a6bbca639952491448fa3e609b775a8a814\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jun 9 17:11:49 2009 -0700\n\n    send_command is now implemented twice... ugly hack to get both shutdown working correctly and startup as well... playback now \"works\" on the emulator, too.\n\ncommit 8d657e004677a7c5dae4479e8519bcaa94c18aad\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jun 9 11:58:55 2009 -0700\n\n    Instead of erasing codec specific data once it\u0027s been output to the omx node, retain the data and just rewind after a stop.\n\ncommit 279fede6ba35cbc37c35616c53406bf2c9720202\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jun 9 10:58:11 2009 -0700\n\n    Various fixes related to play/pause. Decoder now properly frees OMXMediaBuffers, made MemoryDealer destructor protected instead of public to prevent accidental stack-allocation of MemoryDealer objects.\n\ncommit 0f717f15a6328efd3f34082929cd8ad2351095a9\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jun 9 08:44:12 2009 -0700\n\n    Make sure to rewind codec specific data on OMXDecoder::stop and reset AudioPlayer\u0027s notion of time mapping.\n\ncommit 0cfb63e33270daf9b215214608ab383f93a31823\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jun 8 14:25:48 2009 -0700\n\n    Massive rename.\n\ncommit 30ed8f476c4431a5275538958b3e281bd17d5eab\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jun 8 13:52:41 2009 -0700\n\n    send_command and fill/empty buffer commands must be executed in sequence, send_command is now dispatched over the socket instead of through the binder interface to ensure this.\n\ncommit b832d04011b2dd8a9632eb7e575bfe1addd1270d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jun 8 10:21:17 2009 -0700\n\n    MediaBuffers can now be \"clone()\", they sit on top of the same data but have their own range and metadata. Once a clone\u0027s refcount drops to 0 it decrements the refcount on the original buffer.\n\ncommit 4e944672808bdf1ed40a69f3f602f93ebf7b4049\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jun 8 10:01:01 2009 -0700\n\n    Split MediaBuffer.h into MediaBufferGroup.h and MediaBuffer.h, same with their respective source files.\n\ncommit ddb7529b4de4828db51432bd405fddd76cfa3b6a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jun 5 16:30:25 2009 -0700\n\n    More fudging with A/V sync...\n\ncommit 1e5a4d8df08237b58c06c6527a33152ae931addf\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jun 5 11:54:20 2009 -0700\n\n    API cleanup of MediaSource. Got rid of MediaRing as it really doesn\u0027t serve a purpose if OMX decoders are used.\n\ncommit 0953c65232aa9753d17d2e25c5f5526eb810cf13\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Jun 4 16:59:19 2009 -0700\n\n    Experimental TimedEventQueue and an attempt at a cleaner player implementation using it, OMXDecoder is now a little less verbose.\n\ncommit 2085b8ea9484a21fa11f94194a27405d413aeecc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Jun 4 10:17:01 2009 -0700\n\n    Properly bail out of the AV sync loop if the MediaPlayerImpl is stopped.\n\ncommit 471f143458a8a0d93cb1bf9568c63c3967279dc6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 3 17:32:27 2009 -0700\n\n    Now this is much better AV sync, defer seeking the audio source until we know where the video source synced to.\n\ncommit 4010d371dbe62ce4971e13437776cba32cb0bb3d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 3 16:01:07 2009 -0700\n\n    Tweaked some of the heuristics in AV sync, OMXDecoder is now a little less verbose, seek to a sync sample at or _after_ the requested position.\n\ncommit f3d4af1d5a4ac31fa02271b000f6c7ec593f0da9\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 3 15:33:58 2009 -0700\n\n    Change the TimeSource interface\u0027s APIs, prefer microseconds over milliseconds now, changed the way MediaPlayerImpl does AV sync.\n\ncommit 08bb46fa61d12e852a424698ddb0c90700328f6e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Jun 3 11:57:24 2009 -0700\n\n    Using framework\u0027s Mutex and Condition classes instead of pthread functions, much saner locking in OMXDecoder.\n\ncommit 4d77b4e09e59bbf8c1af009ae7dc62b10af52fd6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jun 2 17:12:03 2009 -0700\n\n    MediaSources now publish their format.\n\ncommit 7e429a26c57bf936e1a08035d2d11839f9f00310\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jun 2 16:38:29 2009 -0700\n\n    MetaData is now implemented in terms of KeyedVector, MetaData is now reference counted.\n\ncommit 0fa957aa5c9bcb6ec122ed7b5b97430039be6797\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jun 1 14:39:55 2009 -0700\n\n    Sync sample seek support.\n\ncommit 78a5f090d02e7e6e1a146b29bdb7771eecaa2f86\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jun 1 13:51:11 2009 -0700\n\n    Distinguish shutdown from port-flush since one requires buffers to be freed and the other one doesn\u0027t. Fixes a problem with seek.\n\ncommit e57781d3b2c985a74cd8b60e7c8f2d576459d038\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jun 1 10:52:20 2009 -0700\n\n    First shot at support for seeking a MediaSource. Sync frames are not properly handled yet.\n\ncommit 0551cd78fda78bf66877fb26c5a55e5ae23d8367\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 28 16:23:38 2009 -0700\n\n    Preliminary support for camera input.\n\ncommit f8ebafa65d10d5a06944de6b2e2992a33121b857\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 28 12:13:47 2009 -0700\n\n    Allow NativeMediaPlayer access to Surface\u0027s getISurface() method.\n\ncommit b1a9fb36eeccd9f49d28c1c64b31fccbd6506eeb\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 28 11:38:25 2009 -0700\n\n    Header files are now in their own genesis2 hierarchy below frameworks/base/include.\n\ncommit f49b8b234b8f6ce83148787eef540dd920f04aa6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 28 11:22:03 2009 -0700\n\n    moved MPEG4Writer into libgenesis2.\n\ncommit 5224254919dac4728677335ea60429fa16f518b4\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 28 11:13:38 2009 -0700\n\n    Everything now lives in the android namespace, integrated errors with android errors, renamed MediaPlayer to MediaPlayerImpl.\n\ncommit f9a9d84f7e0465ef5d1938a068655ba39527cf99\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 27 16:43:11 2009 -0700\n\n    Support for getPosition() and getDuration().\n\ncommit 3206cc5140bcbc88be039f8d94b954af63e69752\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 27 15:37:45 2009 -0700\n\n    Support for {MediaPlayer, GenesisPlayer, Genesis2Player}::isPlaying()\n\ncommit 9f41b248e0dfce71bbc50f883750cec52ebfd1fe\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 27 13:49:50 2009 -0700\n\n    Proper disconnection from the OMX service.\n\ncommit cdcf47a2c31599109ee42277c7fa14af3c600091\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 26 17:27:06 2009 -0700\n\n    New player type for the genesis player in libmediaplayerservice. Playing video through an ISurface now.\n\ncommit 0586af20ac9ae0403dd190bafd290b0f90549723\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 22 15:53:19 2009 -0700\n\n    Fix a buffer overflow error by adding padding in case we need to de-frame AVC data.\n\ncommit eac62fff6ad2ffb7b75c0d4a1b9620d33e93fb9b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 22 13:35:30 2009 -0700\n\n    Support for http URIs in MediaPlayer, compensate for AudioTrack latency.\n\ncommit a7db456e3173d94d6b5e457547e2a6a5f7a8e1cc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 22 11:33:25 2009 -0700\n\n    Support for URIs in MediaPlayer class, support for shoutcast streams in MediaPlayer, force shutdown of OMX nodes if they don\u0027t shutdown cleanly within a second.\n\ncommit 1f0268f4f14ad5215668f34e06a420850174d665\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 22 08:33:16 2009 -0700\n\n    and foo.txt is gone again.\n\ncommit 0feca4e0919f345704d78ec78894bac5027bd5ed\nAuthor: Andreas Huber \u003candih@dhcp-172-19-27-148.mtv.corp.google.com\u003e\nDate:   Fri May 22 08:28:49 2009 -0700\n\n    added foo.txt\n\ncommit 9c7d04b35cdc895a2de3602dc46522f608bd205f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 22 08:28:04 2009 -0700\n\n    delete foo again\n\ncommit fec3ca1720992cce51b9a92b86b945da88a6b16c\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 22 08:27:45 2009 -0700\n\n    weird\n\ncommit 30a6571302333146e537e537a3a8986245cca87c\nAuthor: Andreas Huber \u003candih@dhcp-172-19-27-148.mtv.corp.google.com\u003e\nDate:   Fri May 22 08:18:55 2009 -0700\n\n    reverse test\n\ncommit dea3d99dd0fe9386e8a3c51954d9d0fe2be09d38\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 22 08:18:22 2009 -0700\n\n    test\n\ncommit a9eeafec6e46072cac41e54ebdbd153cb7ae7518\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 21 16:37:50 2009 -0700\n\n    Use the video ring again for now.\n\ncommit e05ff3d3c1c4f89ef499a2b172138a775fd694e3\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 21 15:42:19 2009 -0700\n\n    Export to .mp4 now works for MPEG4 video content. Fixed a bug in the sample table wrt co64 chunks.\n\ncommit 5c44c540374a4e50c4e8aaab2b7a34aed6e1391e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 21 09:56:11 2009 -0700\n\n    Fix the build, all binder-related headers have moved and there\u0027s a new library libbinde\n    r to link against now.\n\ncommit 23e0a24404d16c898c2c6b3c7495ad303844bc71\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 21 08:42:04 2009 -0700\n\n    Initial checkin of MPEG4Writer, a class to export media sources into an mpeg4 file. MPEG4/AVC metadata (efss \u0026 friends) not currently working.\n\ncommit 9cd77adb1ac194197364ffad00a0d7215f458e1a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 20 12:31:45 2009 -0700\n\n    New shell command to test recording/encoding. Various changes to OMXDecoder to support encoding properly. Now each OMXDecoder needs a dedicated thread on the client side since onEvent responses could block which would cause deadlocks if a node depends on the output of another node for example.\n\ncommit 5c510fb55ffed7ec25305999ed9b6c1eec48d503\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 18 15:40:06 2009 -0700\n\n    Make media decoding the default in the genesis2 commandline app instead of shoutcast playback.\n\ncommit f6c7a2040b8eb43326621f12c3a936e09b3a70e3\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 18 11:03:04 2009 -0700\n\n    The king is dead, long live the kind... Replaced old OMX binder interface with new OMX binder interface/socket hybrid.\n\ncommit 0d4955eb5df9bfafb576d22f2ed572644d6d69ac\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 14 12:39:34 2009 -0700\n\n    dynamic negotiation of NAL framing with the MPEG4Source, removed stale code from genesis2 commandline tool. Enable support form PV H264 software decoder.\n\ncommit 380369f54a8027cbc9349305184d6bf527a24efe\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 13 17:32:00 2009 -0700\n\n    Explore the option of running everything inside the mediaserver process by encapsulating the player in an IGenesisPlayer binder interface.\n\ncommit b5cada56b9089a23e0c461352a97dc71e08b424d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 13 12:11:06 2009 -0700\n\n    Introduction of TimeSource class, clean shutdown of OMX Nodes.\n\ncommit 89f6e582e605dcb2149eb67f73fe9345d4b9be2e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 12 17:11:56 2009 -0700\n\n    Helper classes MediaRing and MediaPlayer.\n\ncommit 9aaed8739b4bb941473da367fb88f63224d2f1b7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 12 14:19:18 2009 -0700\n\n    Using mmap to map a file instead of going through FILE* improves performance, who knew?\n\ncommit ad097a78bbd002c59193ffdc39b64935928426c7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 11 16:42:42 2009 -0700\n\n    Added a performance test, refactored AudioDecoder a little.\n\ncommit bdd1b80ab3f3ba43e04f1f996e7fa84ed2e2728a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 8 16:19:29 2009 -0700\n\n    No more copying the output buffers coming out of the decoder, NAL separation also done in the extractor to avoid copying the data.\n\ncommit 858955b42c29b8033841a8caaa56c2a449810ef3\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 8 14:02:38 2009 -0700\n\n    Change from a model in which the caller specifies the destination buffer to one where the MediaSource returns a buffer.\n\ncommit 95098b6d4f8bdc37dfb6a109ca58db4d9e414e2d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 8 13:21:45 2009 -0700\n\n    Changes to support multiple pieces of codec specific data to the decoder, de-frame nal units from the h.264 stream and insert start codes\n\ncommit 3941fcf87a48dda81683df727dfb1381f62d9184\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 7 16:37:45 2009 -0700\n\n    some refactoring. Most streams play now.\n\ncommit d3152862840d4dd39068e5197bec8674f3d55dd5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 7 15:37:32 2009 -0700\n\n    Misc. changes to support H264 decoding using the qcom hardware decoder\n\ncommit d4ecdfe7af36e7468270d1c2cbbdc540efe0351e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 7 09:28:18 2009 -0700\n\n    Timestamps are now stored as a fraction, i.e. units and scale, also, PV appears to violate OMX specs by assuming timestamps are in milliseconds instead of microseconds.\n\ncommit fe6a50943f885e065d4061aa727a54417e9f36db\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 6 14:18:27 2009 -0700\n\n    Refactored commandline app instantiation of the decoder.\n\ncommit da1ff2724d0e78e8b360d9a2c34c55dd0e2c0492\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 6 10:41:14 2009 -0700\n\n    Proper audio/video synchronization.\n\ncommit 569ee3a23f600f4b6b87c6178c0223b06e97f201\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 6 09:17:20 2009 -0700\n\n    Preliminary support for timestamps.\n\ncommit e4e302a89207550d8a7170d8c0afbd9c15047c84\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 5 15:13:12 2009 -0700\n\n    Another quick hack job to make CachingDataSource thread-safe as well.\n\ncommit dfb376a58bd7c09aa04e89558186fcfe13fe696c\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 5 15:08:14 2009 -0700\n\n    Quick rushjob to make FileSource and SampleTable thread safe.\n\ncommit 02b29e7ebdab1f8b959b6c177ceb3b89d998f375\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 4 17:22:04 2009 -0700\n\n    Made video decoding work for mpeg4/h263 and mostly(?) with AVC content.\n\ncommit 3a57b8ff15e48f5a0af03bf0a99c32e240dbb7ef\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 4 09:26:42 2009 -0700\n\n    Getting rid of old sample code to drive the OMXNode binder interface.\n\ncommit 5b046aed0cf524a57ea711bc1e43ea80e57b2cb3\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 1 16:21:11 2009 -0700\n\n    Moved files from the commandline utility into the framework, renamed MP3Decoder to AudioDecoder\n\ncommit 7f3fbba21512a078b732cc52c7bd5ba5acb9a317\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 1 15:56:19 2009 -0700\n\n    Fixed buffer ordering and an off-by-1 error in the SampleTable code. Plays all AACs now :)\n\ncommit 024d06baab8f2c540dde16f7e7a4b6dd57f638c7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri May 1 11:52:48 2009 -0700\n\n    Some AAC content in .3gp or .mp4 files plays correctly now, other does not. Implemented ESFS parser.\n\ncommit 1470427866b0d3e0ce6848b4edc01c13a09be289\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Apr 30 15:19:31 2009 -0700\n\n    Another checkpoint, amr decoding now functional.\n\ncommit e612d044439f56331b6a2bc4a88622e04d4d42e7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Apr 29 12:11:29 2009 -0700\n\n    string wrapper around String8, various fixes, shoutcast now works again.\n\ncommit 2ea52dfb1a39bf3a223ffc87855e54919e2daff7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Apr 29 11:08:18 2009 -0700\n\n    Initial check-in of OMXNode binder interface.\n\ncommit 7880d2957f74c0d7fba7679431ff5adb3780543b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Apr 29 10:05:01 2009 -0700\n\n    Initial check-in of both libgenesis2 and the genesis2 commandline tool.\n"
    }
  ]
}
