)]}'
{
  "log": [
    {
      "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": "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": "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": "8ba01021b573889802e67e029225a96f0dfa471a",
      "tree": "110eca2effc73dcb2f46da71e9a0584e4af6e71e",
      "parents": [
        "53bc0a2fc54330534330118edd5c393f39eff8ab"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Dec 18 09:46:54 2012 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Dec 18 13:31:57 2012 -0800"
      },
      "message": "Rename ISurfaceTexture and SurfaceTexture\n\nThe C++ class names don\u0027t match what the classes do, so rename\nISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to\nGLConsumer.\n\nBug 7736700\n\nChange-Id: I64520a55f8c09fe6215382ea361c539a9940cba5\n"
    },
    {
      "commit": "1bf2c273d867e898a057472f4381f7d6e19f0441",
      "tree": "6ef36fa35f78283d059890c9cf641a4034783b27",
      "parents": [
        "516dacfb02d0b0eafe21114330c98ce0e7d90da9",
        "57a339cdb7524f883de3ceb364c0b5606df0c610"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 05 10:38:26 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 05 10:38:27 2012 -0800"
      },
      "message": "Merge \"setVideoSurfaceTexture is now synchronous and applied dynamically\""
    },
    {
      "commit": "516dacfb02d0b0eafe21114330c98ce0e7d90da9",
      "tree": "d52b7097f333fa4d010f224849897b9808b6463a",
      "parents": [
        "88e672043a0671557d9c0877e069dc95de0d8cb0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 03 15:20:40 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 05 10:34:34 2012 -0800"
      },
      "message": "Respect sample aspect ratio in NuPlayer.\n\nrelated-to-bug: 7569402\nChange-Id: I302de95d83b180bd2dc72ddd0c69a665dbce2527\n"
    },
    {
      "commit": "57a339cdb7524f883de3ceb364c0b5606df0c610",
      "tree": "1cd8ed123b560f94745940eeab4c5b0b9fa2a180",
      "parents": [
        "ece53e018b38794f7cdf978a605f943f9ec96c3b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 03 11:18:00 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 03 11:40:44 2012 -0800"
      },
      "message": "setVideoSurfaceTexture is now synchronous and applied dynamically\n\nwhile playing.\n\nChange-Id: If9f08659a01bdc7dac0999730368e9dfa5e58d36\nrelated-to-bug: 5666482\n"
    },
    {
      "commit": "a1f8ab0ad670c30e57f3f072df13df66fe4f4910",
      "tree": "36fa351fed8989e66035a3e05eb9f32e36292f28",
      "parents": [
        "45f7c446777171a728f9eb257f48145dde5d19e2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 30 10:53:22 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 30 11:28:02 2012 -0800"
      },
      "message": "Fix nuplayer seek jankiness by properly flushing decoders before\n\ninitiating the seek. Also refactor the nuplayer state machine to make this\na little more maintainable and extensible in the future.\n\nChange-Id: I36a673bdecff732bca7094c8f72bac24f37c01e9\nrelated-to-bug: 7120373\n"
    },
    {
      "commit": "2546219a54970e0ad53bd218586cdc48d6039b20",
      "tree": "7f030d87274d48d4a65acccfb03d993502785953",
      "parents": [
        "ff82370c7c04340d50673d425f48acafd00f2bc9",
        "7b7f17dc9b30ff4ecdf0aea9bcfa1c518d4ac1e7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Nov 28 09:44:19 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 28 09:44:19 2012 -0800"
      },
      "message": "am 7b7f17dc: am b7c8e918: Add support for HLS playlists of type \\\u0027event\\\u0027.\n\n* commit \u00277b7f17dc9b30ff4ecdf0aea9bcfa1c518d4ac1e7\u0027:\n  Add support for HLS playlists of type \u0027event\u0027.\n"
    },
    {
      "commit": "b7c8e91880463ff4981e3e53e98e45d68e2fe374",
      "tree": "3de921dd21aa2f4899487d3c56e4bfd28f4c004f",
      "parents": [
        "41829f30e60cdb7ae8eb1f0266834d245164f70e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 27 15:02:53 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 27 15:50:08 2012 -0800"
      },
      "message": "Add support for HLS playlists of type \u0027event\u0027.\n\nrelated-to-bug: 6870049\n\nSquashed commit of the following:\n\ncommit eee2f3ba6bb7335f4e285632726db85645669929\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 15:02:01 2012 -0800\n\n    Make everything a lot less verbose by default.\n\n    Change-Id: I884d7a7901aa1e7d4ff590f065ca57a79d2af8b3\n\ncommit 6bbdb837ed5bd88008e45efb8faf595e4051ba26\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 14:34:46 2012 -0800\n\n    HLS now properly signals media time changes at discontinuities including\n\n    the start of playback (which may not necessarily be at time 0 if the playlist\n    is of type \u0027event\u0027 and hasn\u0027t completed yet).\n\n    Change-Id: I5ab747d024f9b8d0df72a4e06a12ebb29f62802e\n\ncommit 1555589832b1878a144a976a643e1af4d61f877c\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 14:32:28 2012 -0800\n\n    As part of a time discontinuity, clients of IStreamListener can now\n\n    signal the corresponding media time after the discontinuity, i.e. the first PTS\n    timestamp following the discontinuity will be considered equivalent to the\n    specified media time and media buffers timestamped accordingly.\n\n    Change-Id: Id7db7679b7faa6efd6270620ff52e34e884f3e92\n\ncommit 5c24c605c073a11c426d025b1e7478fc1ad8365a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 13:00:56 2012 -0800\n\n    NuPlayer sources now expose flags() and can announce\n\n    that duration may change (increase) dynamically, in which case duration\n    will be polled at 1 second intervals and communicated to the upper layers.\n\n    Change-Id: I45102909b7a19eed0dda576747e3814d742a0eea\n\ncommit ecb71de8e281e61971a2cd73e7161a97540bc357\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 12:57:47 2012 -0800\n\n    Stop caching duration in MediaPlayer, duration could increase dynamically.\n\n    Change-Id: I7bb2f16c0abe49debdf45c776d2266aa069d7791\n\ncommit 544aec5823e6d7a3e97e15b6b23546616bcd343e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 27 08:46:28 2012 -0800\n\n    An attempt to add support for \"event\" style HLS playlists.\n\n    Change-Id: I3dfb2e801ecaff8f5d8bdb3a4fca1b18aeeb2c60\n\nChange-Id: I48cf7f65a654d33f2f49ded74f8be22aed9e3b98\n"
    },
    {
      "commit": "f6f0f0e313f4d4dc7035e842270cd31303bd91e7",
      "tree": "ea7b61fa0fb0b8a40bc9af90da39829a5cf34391",
      "parents": [
        "f91a3abb7d136e75f0f5d999193b8c8297d97628"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 16 14:31:15 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 16 14:33:57 2012 -0800"
      },
      "message": "Fix a crash when the stop might be called due to some error before start in RTSPSource\n\no related-to-bug: 7507224\n\nChange-Id: Ic8bfec13097b824ba337a01c9b00c98af2a33f43\n"
    },
    {
      "commit": "be52460cdb8bba3987c4a17308624ffe88408033",
      "tree": "7a5e120e2a6644b4c9a59b7a0310ce55485cb85d",
      "parents": [
        "98bc0b929c682adb59595688d5b87081218eaa3c",
        "9568b4cdc8d2a7896e9c031f2b6cdf6f18210de1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 17 14:44:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 14:44:15 2012 -0700"
      },
      "message": "am 9568b4cd: am 376074ed: Fixed a native crash due to deref of a NULL pointer\n\n* commit \u00279568b4cdc8d2a7896e9c031f2b6cdf6f18210de1\u0027:\n  Fixed a native crash due to deref of a NULL pointer\n"
    },
    {
      "commit": "376074ed1c3c368aeb336954a07632cd806288e2",
      "tree": "0e3fed53f5ab460e1a65a18a8826af1deea0267f",
      "parents": [
        "b845c6b0c3066d6791973be830f0953477461a65"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 14 15:34:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 14 15:34:35 2012 -0700"
      },
      "message": "Fixed a native crash due to deref of a NULL pointer\n\nWe only checked the mNativeWindow against NULL, but did not check the native window object itself against NULL.\n\no related-to-bug: 7153683\n\nChange-Id: I430d344dc09a2fc337bf51001551627056713773\n"
    },
    {
      "commit": "3fd1ce46c2192f18e577d1693ce0eb19701564d1",
      "tree": "1fa3b44c7c8c4585f646d54a06af0b0b63bb6fc4",
      "parents": [
        "058fed277451382b42740a28c2399b5de21a2df4",
        "dd1a87b391679eea06b819b50924fa822599a95e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 16:30:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 05 16:30:19 2012 -0700"
      },
      "message": "am dd1a87b3: am 9c6cb7a8: Merge \"Fragmented mp4 extractor\" into jb-mr1-dev\n\n* commit \u0027dd1a87b391679eea06b819b50924fa822599a95e\u0027:\n  Fragmented mp4 extractor\n"
    },
    {
      "commit": "56997121c5031598fbbba7b7c53980b7fd529c2d",
      "tree": "14e4e9aecfe88d071fce9255dc6be21f8b4c4a0c",
      "parents": [
        "6c75ad21705cde0a11f78c755dc70bdec76890e6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 28 15:09:49 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 14:22:07 2012 -0700"
      },
      "message": "Fragmented mp4 extractor\n\nStill experimental. Set property \"media.stagefright.use-fragmp4\" to true to\nenable.\n\nChange-Id: I210b9c5b5164b5c5eefc31309845ee881ac7db8e\n"
    },
    {
      "commit": "812ee4e0e4648e36e94e7c56b4ac87cbce5e148b",
      "tree": "5f3f5d50dfd05ace2b83f5abd73708d8542e30b7",
      "parents": [
        "ac6d49fa95f3d255b9ca611ec139dce3fef9d907",
        "05e73de0664765a144414e73d4fcf4e1caf3c0f3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 04 19:14:57 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 04 19:14:57 2012 -0700"
      },
      "message": "am 05e73de0: am 0d268a3c: Add setVideoScalingMode support to NuPlayer\n\n* commit \u002705e73de0664765a144414e73d4fcf4e1caf3c0f3\u0027:\n  Add setVideoScalingMode support to NuPlayer\n"
    },
    {
      "commit": "0d268a3cae145afb2720c88ae38fb81550be5584",
      "tree": "f9867ade7070263e6a521531d1ff4e6624618966",
      "parents": [
        "fbe9d81ff5fbdc5aecdcdd13e4a5d7f019824f96"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 31 12:18:27 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 04 19:00:50 2012 -0700"
      },
      "message": "Add setVideoScalingMode support to NuPlayer\n\no related-to-bug: 7089195\n\nChange-Id: Ic30d9312673f2d5837c779e023ac64468ecd4951\n"
    },
    {
      "commit": "ac6d49fa95f3d255b9ca611ec139dce3fef9d907",
      "tree": "e226d7d6e9cf38507c7c70f3ac8d1ca2c5ca22ed",
      "parents": [
        "f5540a1218397e9cc5a381217ffbbc52332cf719",
        "eca95af88949ec76533927f39118ac57f4f01911"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 11:27:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 04 11:27:30 2012 -0700"
      },
      "message": "am eca95af8: am fbe9d81f: Support for acting as a wifi display sink.\n\n* commit \u0027eca95af88949ec76533927f39118ac57f4f01911\u0027:\n  Support for acting as a wifi display sink.\n"
    },
    {
      "commit": "fbe9d81ff5fbdc5aecdcdd13e4a5d7f019824f96",
      "tree": "1c19ca38ef4ec9be83a2be46189a3d6a593a0b81",
      "parents": [
        "7323115c6e55f2da73317d7ff6a69b808d74264e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 14:05:27 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 10:41:49 2012 -0700"
      },
      "message": "Support for acting as a wifi display sink.\n\nChange-Id: I0beac87025b93c60164daa865c89f16b72197a47\n"
    },
    {
      "commit": "f5540a1218397e9cc5a381217ffbbc52332cf719",
      "tree": "4de3bb1f05ca9e334e886a102ff2623e71f0ca99",
      "parents": [
        "85c4ee8533bcb172ad1805bf3daa9f9c95c831b3",
        "76fd1ea58835094e84d36f2353d1390c24d14bfc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 09:35:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 04 09:35:52 2012 -0700"
      },
      "message": "am 76fd1ea5: am 7323115c: Merge \"Improvements to our MPEG2 Transport Stream parser\" into jb-mr1-dev\n\n* commit \u002776fd1ea58835094e84d36f2353d1390c24d14bfc\u0027:\n  Improvements to our MPEG2 Transport Stream parser\n"
    },
    {
      "commit": "7323115c6e55f2da73317d7ff6a69b808d74264e",
      "tree": "fae85c605621adcc8cbac9791365ae13517b8928",
      "parents": [
        "312380331e28b7e5693a4b1646caf2d19aba1b2a",
        "87f2a558dd12043631e12c361abef301bf603140"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 09:31:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 04 09:31:12 2012 -0700"
      },
      "message": "Merge \"Improvements to our MPEG2 Transport Stream parser\" into jb-mr1-dev"
    },
    {
      "commit": "85c4ee8533bcb172ad1805bf3daa9f9c95c831b3",
      "tree": "778a7191b7b646c177ad72d9da209bfadc4a66e1",
      "parents": [
        "efbc8f27cef778c392200dc7e2b5d128e28e91c3",
        "4adf4c6cb90c2bdd2aa46179fd718cbc2f1dd067"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 31 14:46:11 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 31 14:46:11 2012 -0700"
      },
      "message": "am 4adf4c6c: am 31238033: Merge \"Move fragmented mp4 parser to libstagefright\" into jb-mr1-dev\n\n* commit \u00274adf4c6cb90c2bdd2aa46179fd718cbc2f1dd067\u0027:\n  Move fragmented mp4 parser to libstagefright\n"
    },
    {
      "commit": "312380331e28b7e5693a4b1646caf2d19aba1b2a",
      "tree": "6d2d14f97ba1e3fcdf946e749e248d7125344aec",
      "parents": [
        "cd89e8014368af1bbdfa08406d5d2eb0bbbfcca1",
        "cb1f88c684140ce0eb407049a78f889bc7d51be1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 31 14:41:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 14:41:47 2012 -0700"
      },
      "message": "Merge \"Move fragmented mp4 parser to libstagefright\" into jb-mr1-dev"
    },
    {
      "commit": "cb1f88c684140ce0eb407049a78f889bc7d51be1",
      "tree": "8aa79ee909d368f934556c12115a6d03e66ba432",
      "parents": [
        "092fe44abd787fcb4377d90c63f2aa7120a4d267"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 31 11:07:37 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 31 14:14:22 2012 -0700"
      },
      "message": "Move fragmented mp4 parser to libstagefright\n\nand rename it from Parser to FragmentedMP4Parser\nChange-Id: I986f50d0c5c93648aac675d6160e18623b031541\n"
    },
    {
      "commit": "87f2a558dd12043631e12c361abef301bf603140",
      "tree": "f8b3896d77e8ba22b3edbcade5d98d0aaa8cde13",
      "parents": [
        "dc91c885f267005e06f439a3bd592b3d8706bb50"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 13:55:24 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 13:55:24 2012 -0700"
      },
      "message": "Improvements to our MPEG2 Transport Stream parser\n\nVerifies the continuity counter\nParses and associates PCR time with streams\nAllows for a absolute time anchor to be signalled via discontinuity.\n\nChange-Id: I4bc88c78382c9cc6380f28df584cc6c254e0a8f9\n"
    },
    {
      "commit": "9a13e30fc2c2ca2bdcecae6daf5daa0a6b4fec41",
      "tree": "d563ee3082e98eb49ffe89a2d77ddd447020feb6",
      "parents": [
        "f10cf66d258ab88af9cb363077cdd96d59f7ca15",
        "8d0189dc829dc87a74ff91eb0c067dc291ff59c3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 13:12:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 31 13:12:12 2012 -0700"
      },
      "message": "am 8d0189dc: am 61356671: Merge \"Add support for mpeg2 transport streams to the RTSP implementation.\" into jb-mr1-dev\n\n* commit \u00278d0189dc829dc87a74ff91eb0c067dc291ff59c3\u0027:\n  Add support for mpeg2 transport streams to the RTSP implementation.\n"
    },
    {
      "commit": "cfaeeec0900014d97e15829e0fa52f865ee4c786",
      "tree": "d97027786e1326f54d3d687b5e724eb5b7c04a3b",
      "parents": [
        "dc91c885f267005e06f439a3bd592b3d8706bb50"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 10:27:46 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 10:27:46 2012 -0700"
      },
      "message": "Add support for mpeg2 transport streams to the RTSP implementation.\n\nChange-Id: I409d7133a53a71e62523b1acc2b03302fcf824a5\n"
    },
    {
      "commit": "bf4c5d9f3bdb6fd3889afdeb0312d54f6f2e8de3",
      "tree": "ae7a4e67c15398130c65e3645b0a66edab819307",
      "parents": [
        "38b8d56d63b38e539daa44292ae3e01633c99fef",
        "1f3d61f99c5cbe65a2cd32985445fc9ffa12adca"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 13 11:17:53 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 11:17:53 2012 -0700"
      },
      "message": "am 1f3d61f9: am bd828233: Use the correct data offset by remembering the offset of the enclosing \\\u0027moof\\\u0027\n\n* commit \u00271f3d61f99c5cbe65a2cd32985445fc9ffa12adca\u0027:\n  Use the correct data offset by remembering the offset of the enclosing \u0027moof\u0027\n"
    },
    {
      "commit": "bd828233d3eda966bf7145108dde74616abd97fb",
      "tree": "942a6d829a42a3b3f3a1ac2286015a94acde5332",
      "parents": [
        "8cf9c1a8640553a146f3a7aad01b393c664a46af"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 13 10:59:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 13 11:13:22 2012 -0700"
      },
      "message": "Use the correct data offset by remembering the offset of the enclosing \u0027moof\u0027\n\ncontainer.\n\nChange-Id: I2f0f92dabe31341a6a91d435943e4a65e34884ba\n"
    },
    {
      "commit": "518cdbe52b60af91a2bd2d3ce2d29feac884ae02",
      "tree": "e99f3e1486755be21f3fa24c8ac210a395b2d58b",
      "parents": [
        "006406f934655b9ea4ceafe4ad672e315e2e8efc",
        "6f1ecc9815b8b02c407254de0fb9dbbb575c6fc1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 13 09:56:21 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 09:56:21 2012 -0700"
      },
      "message": "am 6f1ecc98: am 75767ab7: Merge \"Signal end of stream if no more fragments are going to be available.\" into jb-mr1-dev\n\n* commit \u00276f1ecc9815b8b02c407254de0fb9dbbb575c6fc1\u0027:\n  Signal end of stream if no more fragments are going to be available.\n"
    },
    {
      "commit": "c7708555ea7511aea684e00a55fb5309281540ce",
      "tree": "f3f8387559ca0a200e459b45a058fe5e5d2a7fab",
      "parents": [
        "faa88edb9df91b0e7725b0ee4c4fb5e92262b3d5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 09 16:24:54 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 09 16:35:00 2012 -0700"
      },
      "message": "Signal end of stream if no more fragments are going to be available.\n\nChange-Id: I16696740d3551aa8a5ba904ec757c64b0ecd1307\n"
    },
    {
      "commit": "7a06b60f697ba0729ad3a2230529a7b493b9cfb4",
      "tree": "b584d660f25525a79993513fcd55ec227207ee67",
      "parents": [
        "e9103a17dd0957e3dd21c2b424e03ac79faf4192",
        "8f8bffd61352915af9d7af6d0279ada039a58d7e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 09 13:51:50 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 09 13:51:50 2012 -0700"
      },
      "message": "am 8f8bffd6: am faa88edb: Merge \"Fix static sample table processing, add support for h.263 video.\" into jb-mr1-dev\n\n* commit \u00278f8bffd61352915af9d7af6d0279ada039a58d7e\u0027:\n  Fix static sample table processing, add support for h.263 video.\n"
    },
    {
      "commit": "b9787142c5f5f8f47e7e35409f4f2ef7112ab72e",
      "tree": "3966271224e78b6d8e88da104385a67900890635",
      "parents": [
        "0d27c65ddb5c968baa6db0c26e80f5c451bc52bc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 09 09:15:48 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 09 13:25:48 2012 -0700"
      },
      "message": "Fix static sample table processing, add support for h.263 video.\n\nChange-Id: I5628d3437b5e6f8836d78557fd07ab87e5a914e3\n"
    },
    {
      "commit": "1c84cb0bd8bc404afd35618a1c34200abce6aa8e",
      "tree": "3750e6e3235f6f6218e6780a50a8e46416602c46",
      "parents": [
        "04c0891039fcb581461510c7a608793a035abbfb",
        "ef8532b0ae4a34f02f824ba0c0f3e8d4db2067e1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Aug 08 09:46:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 09:46:19 2012 -0700"
      },
      "message": "am ef8532b0: am e2229fba: Merge \"Handle empty stsc box\" into jb-mr1-dev\n\n* commit \u0027ef8532b0ae4a34f02f824ba0c0f3e8d4db2067e1\u0027:\n  Handle empty stsc box\n"
    },
    {
      "commit": "b7e75cfd64893dde230dfc1c3b281a00ca1b4470",
      "tree": "1ed2135b58a8762cdefda74197ea688a50b907b5",
      "parents": [
        "28620ee3e9926ef07f0b4cb3e22b156b812e2d7e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Aug 08 09:19:05 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Aug 08 09:19:05 2012 -0700"
      },
      "message": "Handle empty stsc box\n\nChange-Id: I867e2499fac3045075654aaaecf44327753327fd\n"
    },
    {
      "commit": "1ebccf52559ee7249bfe25c1a7c0232f8bc8060f",
      "tree": "1a5eb5db7a9fe3e196bed3cf5a1346ccdfd637d4",
      "parents": [
        "27644634ea54d48863e765d87e24d60153a6e795",
        "c9b125a1be3d1edcb8b7f050334ef3d3a980d3d1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 03 14:20:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 03 14:20:20 2012 -0700"
      },
      "message": "am c9b125a1: am a3b71fa5: Merge \"experimental support for fragmented mp4 playback in nuplayer\" into jb-mr1-dev\n\n* commit \u0027c9b125a1be3d1edcb8b7f050334ef3d3a980d3d1\u0027:\n  experimental support for fragmented mp4 playback in nuplayer\n"
    },
    {
      "commit": "840667883fd09d44015716d79bc3ac4d60edc0f0",
      "tree": "cb55492dbe3ca64b2ab9ba2f5a3bb6d0a0bcf650",
      "parents": [
        "9cb20d4a41eb84bfab7f9f0d0829393f378583f4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 09:34:26 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 03 13:57:32 2012 -0700"
      },
      "message": "experimental support for fragmented mp4 playback in nuplayer\n\ncherry picked from change 170999\n\nChange-Id: I407775f0290154ad4961134839a15c9f296424c0\n"
    },
    {
      "commit": "27b6d228301ba750dd9b3730d1127e4f0ae2209a",
      "tree": "34a2d66ceb6cbf9f3aea15eb0c936f7f92790169",
      "parents": [
        "b24ed02a90b6050fc1822cfd43d02140fea77b18"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 20 17:38:48 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jul 31 10:56:06 2012 -0700"
      },
      "message": "Removed a CHECK_EQ that is not needed.\n\n\u0027what\u0027 was just compared against Renderer::kWhatFlushComplete before entering the\nif block.\n\nChange-Id: I72c5c156f814621a24439d89e150c4e0d90edcbb\n"
    },
    {
      "commit": "9fbe94294ce2053d102ff5de89846a0c5015fb58",
      "tree": "7ba08233afeb658bdd59e1e0b12e96638ee796a4",
      "parents": [
        "3beb3ff4af08ea02da87e6548e0544d2ba47daf1",
        "5d246efa220a7c7b22e490576c488b3853c664dd"
      ],
      "author": {
        "name": "Ed Heyl",
        "email": "ed@google.com",
        "time": "Sun Jul 29 16:47:58 2012 -0700"
      },
      "committer": {
        "name": "Ed Heyl",
        "email": "ed@google.com",
        "time": "Sun Jul 29 16:47:58 2012 -0700"
      },
      "message": "Merge remote-tracking branch \u0027goog/jb-dev-mako\u0027 into jb-mr1-dev\n\nConflicts:\n\tservices/audioflinger/AudioFlinger.cpp\n\nChange-Id: If27e4ff35de1e182394cc149e1557a49f0f7c95b\n"
    },
    {
      "commit": "5d246efa220a7c7b22e490576c488b3853c664dd",
      "tree": "8258668e5e235b67d51d8f4554e77f8c2434fe2c",
      "parents": [
        "45dfb6ae94b33eea04d74afa378c1664e884f09a"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Mon Jul 09 10:36:57 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Jul 25 01:28:36 2012 -0700"
      },
      "message": "NuPlayer: Prevents creation of Video Decoder when we use Music Player\n\n- Prevents instantion of Video Decoder when we use applications like\nMusic Player  which do not support Video Playback\n- Adds a check to prevent scanning for sources when it is either an\nAudio only clip or a video only clip or an AV clip played with a\nMusic Player.\n\nChange-Id: I74dd9bc53e54fd4f3682536c987289ac252690b0\nSigned-off-by: Arvind Thatikonda \u003carvindt@codeaurora.org\u003e\n"
    },
    {
      "commit": "f57b4ea3e409537b1d5f9aaea93d356b1cebbc6a",
      "tree": "ca0ff108318bbe53657e62ec27f241750b6a4b55",
      "parents": [
        "33e6e35b03a726e35203e97550f32154c91d5f13"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 20 13:38:36 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 20 13:38:36 2012 -0700"
      },
      "message": "Added a callback in nuplayer via informational event to signal the start of video rendering\n\nChange-Id: Id7b9b82d4e5467ad8701bfbad4dcc5070f3703cf\n"
    },
    {
      "commit": "3d51d5cb53cc630709a0ba78d0e60501a675f2d5",
      "tree": "c01dc8011b4e0061343c8b60b0da3508c63ae822",
      "parents": [
        "b4ea1ab821d652cb080910d4081f5f1318597a90"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 12 18:10:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 13 15:18:29 2012 -0700"
      },
      "message": "Add NOTICE and MODULE_LICENSE_APACH2 to libs build under /frameworks/av/\n\nChange-Id: I0a3af3e2abdedebd5934f3d941d01c32cfc75e26\nrelated-to-bug: 6647465\n"
    },
    {
      "commit": "c9d1696d214d2175327067ccc1991bcb36976404",
      "tree": "d8dca6340bbe00cd04d6dda4c1917e1affe9a516",
      "parents": [
        "8370c7ad4136ad7e0787d5a91ccfa3d63cfbe5cc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 21 11:12:40 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 21 11:12:40 2012 -0700"
      },
      "message": "For an RTSP live stream we won\u0027t map rtp time to normal play time,\n\nsince we don\u0027t have the information necessary.\n\nChange-Id: I3119fcc061c4b6756a69c6139ffdf013d806fee1\nrelated-to-bug: 6528548\n"
    },
    {
      "commit": "bfd4d0d9fe0033abf3f55b94f30f6a58846a875e",
      "tree": "9b8a16246cce7e86b6dcc4e5af147d264d4eb4b9",
      "parents": [
        "cd28dc10d49c359566c69d48a29a6f0d3eefa6d9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 17 14:18:50 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 17 14:18:50 2012 -0700"
      },
      "message": "Buffer at least 2 secs worth of data at startup of after a seek before\n\nresuming starting RTSP playback.\n\nChange-Id: I060c6c7fd627ab7ebd5c095ddcfdb4cc0f637aad\nrelated-to-bug: 6364126\n"
    },
    {
      "commit": "9806555d3930be43e11106281dee354820ac1c88",
      "tree": "b5aa448cc0bfede361540f45b97c81ad398a9df4",
      "parents": [
        "6a3969cc3bcbfc84dbcc27aa726eb96bc03a830b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 03 11:33:01 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 03 11:47:08 2012 -0700"
      },
      "message": "Respect channel mask in ACodec and NuPlayer.\n\nRefactor conversion from MetaData into AMessage while we\u0027re at it.\n\nChange-Id: I5479129836ea4316e8de28cf1b472bf19e3ac4ab\nrelated-to-bug: 6439076\n"
    },
    {
      "commit": "0c0abd4ad26971b5fba94734137fe0bb1a590ab6",
      "tree": "c1bc93a1c16884cdaf545074c1766fbb46d1a6f6",
      "parents": [
        "8b71241ce7353731ab75322c46e090ee35014a33",
        "0b7c9a327f5d10b841a3aa2bbe103a2ca6dcac37"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 30 11:44:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 30 11:44:47 2012 -0700"
      },
      "message": "Merge \"Notify the client about an initial size of (0, 0) instead of (320, 240).\" into jb-dev"
    },
    {
      "commit": "0b7c9a327f5d10b841a3aa2bbe103a2ca6dcac37",
      "tree": "b53531cf12c1000598bf15b828fe3f7a3cda4116",
      "parents": [
        "83faee053cfd4251dbb591b62039f563ffdac399"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 30 11:35:34 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 30 11:35:34 2012 -0700"
      },
      "message": "Notify the client about an initial size of (0, 0) instead of (320, 240).\n\nwhich is documented as \"we don\u0027t have that information just yet\".\n\nChange-Id: I158a53af83d526f713cd30372fce28558894b857\nrelated-to-bug: 6293020\n"
    },
    {
      "commit": "8b71241ce7353731ab75322c46e090ee35014a33",
      "tree": "afc21859dae503e57aa5a3cc777512800d1fd64e",
      "parents": [
        "83faee053cfd4251dbb591b62039f563ffdac399"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Apr 27 09:33:24 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 30 09:40:47 2012 -0700"
      },
      "message": "Fix mono gapless playback for decoders that output stereo\n\nThe old AAC decoder always outputs stereo, even for mono source material, so we\nneed to use the number of channels of the output when calculating the number of\nbytes to skip, not the number of channels in the source.\nThis makes OMXCodec skip the right amount of data, and prevents NuPlayer from\nwriting half a frame and then asserting when the AudioSink doesn\u0027t accept it.\nAlso move use of the SkipCutBuffer from NuPlayer to ACodec, so that it also\nworks when using the new Java APIs, and make SkipCutBuffer derive from RefBase.\nb/774846\n\nChange-Id: I34df9fea3e6730617eae559afaa556f4085ef0a0\n"
    },
    {
      "commit": "e370bb62b89d2f2980f519392010ea08a24c558e",
      "tree": "1b6f05a3447497841b259f00f03af2150e165c61",
      "parents": [
        "e4f70a7ea72c2a9fca60e6b64a258604e9333580"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 25 14:24:30 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 25 14:28:29 2012 -0700"
      },
      "message": "Bump up the max number of items in an AMessage, remove overly stringent\n\nCHECK() limiting us to just audio/* or video/* tracks.\n\nrelated-to-bug: 6399405\nChange-Id: I9bdaf7e709665ecc22da8839c8b16c081dbf4535\n"
    },
    {
      "commit": "1948eb3ea6eee336e8cdab9b0c693f93f5f19993",
      "tree": "448eed49a4ba18fb1ab4f2fb1b2c0d5cef6d242f",
      "parents": [
        "21e8c50bd13ebe44f3088e26c9c6df0e163c469c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 16:50:19 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 14:17:02 2012 -0700"
      },
      "message": "Add support for deep audio buffers\n\nAllow AudioSink to use deep audio buffering when the\nsource is audio only and its duration is more than\na certain threshold.\nThis helps improve battery life but implies higher\naudio latency.\n\nChange-Id: Ie79915b61c370292f05aabda9779356570e03cbb\n"
    },
    {
      "commit": "4110c101c3d0dd8dbc44c8d2d0edd3e2e7d6652f",
      "tree": "7bb39d31afac7348bb91093cc0e1c2d9aa49cba2",
      "parents": [
        "a1472d9883e35edd280201c8be3191695007dfd4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 29 09:31:28 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 02 09:19:03 2012 -0700"
      },
      "message": "Add gapless playback support for NuPlayer\n\nThis makes NuPlayer use a SkipCutBuffer when needed, and adds a new\nAudioSink method to retrieve the number of frames written so far, so\nNuPlayerRenderer can calculate how much data it can write without blocking.\nAlso make some more methods const.\n\nChange-Id: Id7d253ad8a7b85e9a84ca2baafbe32817b16c744\n"
    },
    {
      "commit": "559bf2836f5da25b75bfb229fec0d20d540ee426",
      "tree": "d7dd708b17eeca96a3e5d8bcc25a51ff3d1b5d0d",
      "parents": [
        "b0b2b4d890cf3bfb274797a759642b4e733343d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:29:14 2012 -0700"
      },
      "committer": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Wed Mar 28 12:07:41 2012 -0700"
      },
      "message": "AV Android make files changes\n\no plus a few file relocation: ActivityManager.cpp/h, SoundPool.h, etc\no remove some runtime dependencies to libandroid, libandroid_runtime, etc\n\nChange-Id: I047a47c5fb361dd5cf85cd98798c39f629a75d10\n"
    },
    {
      "commit": "ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6",
      "tree": "99d5bb3a2f48f9a3ba3eaaf17e630b589e97bef1",
      "parents": [
        "cc1110dc92e53e9cc0afbb043e6ef8295bd9c5d5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:13:27 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:24:04 2012 -0700"
      },
      "message": "Provisional support for secure decryption of media streams.\n\nChange-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe\n"
    },
    {
      "commit": "afed0e1fa37473a4cd30018577b560acc79d9a3f",
      "tree": "60e3a06c0cc8266f4ecaa45eb7d08c0c47a8b2dd",
      "parents": [
        "898b11f2aeaaa2bed84d963a3fcfd3b229e00b99"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 20 15:39:58 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 22 13:18:08 2012 -0700"
      },
      "message": "Use NuPlayer for media playback everywhere\n\nif media.stagefright.use-nuplayer is set to true.\n\nChange-Id: Ibb217e7d7d5195b7feeea557554fe78e1585744c\n"
    },
    {
      "commit": "6c6b4d0d2b98a7ceee8b697daaf611f8df3254fb",
      "tree": "307356be51d237ee22f88affdc3376270d571be9",
      "parents": [
        "aa4397f07c43bd83bc3100b749401dc3d15e7622"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 14:37:53 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 21:28:57 2012 -0700"
      },
      "message": "Switched to use the header files in /frameworks/native\nand deleted the duplicate header files in /frameworks/base\n\no related-to-bug: 6044887\n\nChange-Id: I17e0692d9a9b5c8796ded36677c833ca8ab36795\n"
    },
    {
      "commit": "786618ffe881aceb64d65a6a2e2d76ede6e01ec0",
      "tree": "3e88f6c457f47529026207badf835dfa448ec8b8",
      "parents": [
        "e7c795f3300814aa3f26ceb845f29695383c7edc"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 14:54:07 2012 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 17:26:49 2012 -0800"
      },
      "message": "Add channel mask in AudioSink\n\nAdd support for specifying a channel mask when opening an AudioSink.\n  This parameter does not replace the channel count parameter in order\n  to not have to duplicate the logic to derive a mask from the\n  channel count everywhere an AudioSink is used without a known mask.\n\nA mask of 0 (CHANNEL_MASK_USE_CHANNEL_ORDER) means a mask will\n  be automatically derived from the number of channels.\n\nUpdate existing AudioSink implementations to use the channel mask,\n  and users of AudioSink to specify the mask if available, and\n  CHANNEL_MASK_USE_CHANNEL_ORDER otherwise.\n\nChange-Id: Ifa9bd259874816dbc25ead2b03ea52e873cff474\n"
    },
    {
      "commit": "df712ea86e6350f7005a02ab0e1c60c28a343ed0",
      "tree": "75401d5ef563d1ae76aaae4965f65bb39f92736c",
      "parents": [
        "d3393c35259588e8ad61a43d1d1aa1568e943307"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 18:48:35 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:08 2012 -0800"
      },
      "message": "fix libgui header location\n\nChange-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe\n"
    },
    {
      "commit": "2d8bedd05437b6fccdbc6bf70f673ffd86744d59",
      "tree": "1a11658a7379249eb4f6bd73b356baa4a661f41e",
      "parents": [
        "79af02c6a813b5d31fba3e7b72686a02f0ae7e0f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 21 14:38:23 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 22 16:20:59 2012 -0800"
      },
      "message": "Add new APIs AMessage::(set|find)Buffer to make it safer to pass\n\nABuffer objects through messages.\n\nChange-Id: I9f8b4e4c4767d0d70a0105e0c0813b754379b49d\n"
    },
    {
      "commit": "5778822d86b0337407514b9372562b86edfa91cd",
      "tree": "b8faf8188dfb8865bd88b4dfc778a7d9ab89bb73",
      "parents": [
        "c33305c5dd4cc06e71eb0c66a7150aa6ab647c99"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 21 11:47:18 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 22 15:06:06 2012 -0800"
      },
      "message": "Implementation of a java media codec interface and associated tools.\n\nChange-Id: I13e54062d4de584355c5d82bb027a68aeaf2923b\n"
    },
    {
      "commit": "29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47",
      "tree": "3bdafe4b02fe36f6ee29c3170f0b0d2799bebf86",
      "parents": [
        "d709ca9c6a0fa1c8f40cbe624a119398643c5087"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "df64d15042bbd5e0e4933ac49bf3c177dd94752c",
      "tree": "ff04eb3e1a1ce8c8d8559b93a438f278d984aa87",
      "parents": [
        "b8a805261bf0282e992d3608035e47d05a898710"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "2a8ce907a57f30ffa336a024e09752794d08ec1a",
      "tree": "fce5afddda0f1c0a7d310234494fcf6ae0d3d07e",
      "parents": [
        "42968939dfce0954d6540011199045ec4ed7de80",
        "a9960bcb176c58bd9d5f9062b84437a59fff875e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 15 10:46:14 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 15 10:46:14 2011 -0800"
      },
      "message": "Merge \"Fix build error when verbose logging is enabled\""
    },
    {
      "commit": "a9960bcb176c58bd9d5f9062b84437a59fff875e",
      "tree": "e6942825c6f708eb0244905038a6e90d73806175",
      "parents": [
        "eebeceec684a36222b4559e3157b0db04c0a67ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 15 08:27:40 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 15 08:34:59 2011 -0800"
      },
      "message": "Fix build error when verbose logging is enabled\n\nChange-Id: I30f4e5d35d1b24dce2e6152a13fd0fb61414a3e2\n"
    },
    {
      "commit": "d2927a79dc933a134e022281a4679a65e340dc3a",
      "tree": "df37d4c9284b27328073c30d7543977c8c9bf103",
      "parents": [
        "a3e52a846f1e299c4b205e2da698b184591d618e"
      ],
      "author": {
        "name": "Owen Lin",
        "email": "owenlin@google.com",
        "time": "Mon Dec 12 16:17:34 2011 +0800"
      },
      "committer": {
        "name": "Owen Lin",
        "email": "owenlin@google.com",
        "time": "Mon Dec 12 16:17:34 2011 +0800"
      },
      "message": "Fix the build. (Change LOGV to ALOGV)\n\nChange-Id: I14104540cfbd2bcdd7af1534db20554b88c4c0ce\n"
    },
    {
      "commit": "a3e52a846f1e299c4b205e2da698b184591d618e",
      "tree": "27447717d1d66b4c8fe20391c3805c13885463ee",
      "parents": [
        "aa5ba9a27f4c483ee116b7b296a681f4f8e23e62",
        "3b42170d4ceaef29daf6fef51c06dd3d88d99a67"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 09 18:09:21 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 09 18:09:21 2011 -0800"
      },
      "message": "am ebfce84f: am 68f592a8: Merge \"Don\\\u0027t perform RTSP seeks right away but queue them for 200ms\" into ics-mr1\n\n* commit \u0027ebfce84f7fd3e25fa08c36b155db91df90a59b3d\u0027:\n  Don\u0027t perform RTSP seeks right away but queue them for 200ms\n"
    },
    {
      "commit": "aa5ba9a27f4c483ee116b7b296a681f4f8e23e62",
      "tree": "272b4fa8657fe153eed988e69d5253dd7e0015f7",
      "parents": [
        "e154d13b47d7a2bf5968a7c6070da15814d3c544",
        "62c54ce5b09bab16dfabf18cc1f2dc1d9b35acf8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 09 18:09:19 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 09 18:09:19 2011 -0800"
      },
      "message": "am aa82c39b: am 0ba9380a: Merge \"Fix Bitreader \"putBits\" implementation, make sure we emulate timestamps\" into ics-mr1\n\n* commit \u0027aa82c39bdb4ad9c1fdcb09f3bea11be5197d3ce6\u0027:\n  Fix Bitreader \"putBits\" implementation, make sure we emulate timestamps\n"
    },
    {
      "commit": "b7b9c7b47a771e550124ae269a7b1be262039b95",
      "tree": "b3a6159135c39e43306d25f3c2dd5689d0841777",
      "parents": [
        "1906e5c7492b9cbc88601365536a69e9a490c963",
        "ee736e9e74c5368db8d63214513c85cb74bb0183"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 08 13:33:16 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 08 13:33:16 2011 -0800"
      },
      "message": "Merge \"Don\u0027t perform RTSP seeks right away but queue them for 200ms\" into ics-mr1"
    },
    {
      "commit": "ee736e9e74c5368db8d63214513c85cb74bb0183",
      "tree": "0429919e29c8bf29d834f99bf39b7a7eccb99c89",
      "parents": [
        "894f3ca9a9f94225bb64f36847508a91d0b17a6e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 08 13:04:50 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 08 13:04:50 2011 -0800"
      },
      "message": "Don\u0027t perform RTSP seeks right away but queue them for 200ms\n\nand only execute the last one.\n\nChange-Id: I9ab342396ec9c9c03624a4b0306d1e180ceca000\nrelated-to-bug: 5732960\n"
    },
    {
      "commit": "1906e5c7492b9cbc88601365536a69e9a490c963",
      "tree": "e6cb486b8987b716312076a28c695c10115fe61a",
      "parents": [
        "894f3ca9a9f94225bb64f36847508a91d0b17a6e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 08 12:27:47 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 08 12:27:47 2011 -0800"
      },
      "message": "Fix Bitreader \"putBits\" implementation, make sure we emulate timestamps\n\nif we don\u0027t receive npt time mapping from the rtsp server (i.e. live stream)\n\nChange-Id: I5147d665bd90c9a303ad6ffdafbf770f930f917c\nrelated-to-bug: 5660357\n"
    },
    {
      "commit": "ea9d51bd710e6739077a3700f27a1c37767a2f6d",
      "tree": "bd2df5e1d9f4f5a95976779aa7f73d7e4989c6c3",
      "parents": [
        "37a153f450cb8550fe64a1bf62366cf5e944d6ab",
        "8a1fac32b307cfa096b343f219d471365b657ad8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Nov 30 09:53:40 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Nov 30 09:53:40 2011 -0800"
      },
      "message": "resolved conflicts for merge of 3d630e86 to master\n\nChange-Id: I9eb7b7c1668b5f0de85ec8b1e9257cf1ec4d8b9e\n"
    },
    {
      "commit": "c089d02cf2bddf1bba6eaa2b2fcce149dc44633e",
      "tree": "b1370ec48d21e9052eb0b040814f91638ebc3a18",
      "parents": [
        "eca36b5a1759970bc3d0373d72d6fec7c9b7e944",
        "6bf045c85526312b198733ac8113cc213c8d79c9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 16:33:02 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 29 16:33:02 2011 -0800"
      },
      "message": "am 074133b2: am 351143fb: Merge \"Updated (internal) API for IStreamSource to signal discontinuities\" into ics-mr1\n\n* commit \u0027074133b260f8d12e484e93b9aa5a33a4983b7349\u0027:\n  Updated (internal) API for IStreamSource to signal discontinuities\n"
    },
    {
      "commit": "eca36b5a1759970bc3d0373d72d6fec7c9b7e944",
      "tree": "b7926335dcc15adaec73e4cfd4b53068c32a74f5",
      "parents": [
        "404a123bed7f180724ead17f10e037b3eb347701",
        "b19386fe52b727524de59a7673b2f56b2e707d51"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 15:14:44 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 15:14:44 2011 -0800"
      },
      "message": "resolved conflicts for merge of 998a929a to master\n\nChange-Id: Id5cfbcf20e5ec28782cc88075040cf9edebfdfe8\n"
    },
    {
      "commit": "7609b2304379fd6d3e5c8d13a34c680441dc48b6",
      "tree": "8cd10d7ed5228247ee71cdf01dd8619ab1ee4999",
      "parents": [
        "5274010d068b05333e3e5544d59ca284802b1a8e",
        "b58ce9f5e8d0696f9571a94ba5fc05f4500f663f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 14:09:10 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 14:09:10 2011 -0800"
      },
      "message": "Merge \"Make sure we can properly shutdown even if\" into ics-mr1"
    },
    {
      "commit": "544ee287d01d98efbe9eeeaeb7016c8dd55e3748",
      "tree": "8a757cc879f9a06bf4b13a94d3831a48787871dd",
      "parents": [
        "6e3d311b6631b12aac2879d1b08c3534aece78b1",
        "bfcc8d8ab7c56bc013bd221a29e1ecf3a6390813"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 14:08:45 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 14:08:45 2011 -0800"
      },
      "message": "Merge \"Updated (internal) API for IStreamSource to signal discontinuities\" into ics-mr1"
    },
    {
      "commit": "bfcc8d8ab7c56bc013bd221a29e1ecf3a6390813",
      "tree": "0469bc8cc740ad84a42b502ba57e02b3e520748a",
      "parents": [
        "7cafbb32999049873d4746ba83bd20c88abe6ce6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 11:57:35 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 11:59:10 2011 -0800"
      },
      "message": "Updated (internal) API for IStreamSource to signal discontinuities\n\nChange-Id: Idd4b9d8e7cec16b3e3c91c70e75144d42be30f96\nrelated-to-bug: 5553055\n"
    },
    {
      "commit": "6e3d311b6631b12aac2879d1b08c3534aece78b1",
      "tree": "001b5d677ee599a4d6f8d1ba636fbf4e5f0c6a4e",
      "parents": [
        "7cafbb32999049873d4746ba83bd20c88abe6ce6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 28 12:36:11 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 28 16:45:13 2011 -0800"
      },
      "message": "Finer granularity discontinuity support.\n\nNo clients can signal a format change on either audio or video track (or both)\nand a time discontinuity (timestamps changed) independantly.\n\nChange-Id: I3e6cf4e7c260e85759879d61a9b517f68431c22f\nrelated-to-bug: 5553055\n"
    },
    {
      "commit": "b58ce9f5e8d0696f9571a94ba5fc05f4500f663f",
      "tree": "4c30ef7b134b02bd84cb0d7dc7407c27f5c945a3",
      "parents": [
        "7cafbb32999049873d4746ba83bd20c88abe6ce6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 28 16:27:35 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 28 16:27:35 2011 -0800"
      },
      "message": "Make sure we can properly shutdown even if\n\na) one of the two decoders has a pending discontinuity\nb) the renderer holds on to all output buffers for that decoder\nc) the renderer is paused\n\nif all three conditions are met the decoder won\u0027t ask for more input data\nand therefore never see the discontinuity.\n\nTo avoid this we briefly resume the renderer just before shutting down.\n\nChange-Id: I9e08af2a1eb4298d1cd00497d6aa33f4ad184e9a\nrelated-to-bug: 5655016\n"
    },
    {
      "commit": "fa1e6f99cd4f2e23e23dbbb1fd43041fcd32fe9e",
      "tree": "172888e8812d41d54169efe2dcb5cd90b79adf26",
      "parents": [
        "471af5aaea2d2491a77dba379771f7c96b9ca3c3",
        "32f0a8c022fa733aa721c607df330a5d4a0a1b32"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 09 21:19:00 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 09 21:19:00 2011 +0000"
      },
      "message": "am bb1b7d5c: am 19998120: Merge \"Bug 5478024 drop after decode if can\\\u0027t drop before\" into ics-mr0\n\n* commit \u0027bb1b7d5cb3c5502484269bfd0cdcd0d5a6d6bfad\u0027:\n  Bug 5478024 drop after decode if can\u0027t drop before\n"
    },
    {
      "commit": "b5d340314ac6da461f15fe4d1db996ae28770d67",
      "tree": "cf6832c7d73a0ecf7237880dc2401ce5f4738fc9",
      "parents": [
        "a47b69c6f7c6fe0044ebcb2d0790ce3548de56fd",
        "683525b61bc1b58b4fd9e1b3ef9ed3b0c3bf34ae"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 09 16:41:19 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 09 16:41:19 2011 +0000"
      },
      "message": "am 19998120: Merge \"Bug 5478024 drop after decode if can\\\u0027t drop before\" into ics-mr0\n\n* commit \u002719998120f53caceb620f138c6eea182f1e693660\u0027:\n  Bug 5478024 drop after decode if can\u0027t drop before\n"
    },
    {
      "commit": "32f0a8c022fa733aa721c607df330a5d4a0a1b32",
      "tree": "137390c51b874b2ed79e17963f77e9f296dd8595",
      "parents": [
        "936a981ba15d528a023311aa32f46446813551d9",
        "683525b61bc1b58b4fd9e1b3ef9ed3b0c3bf34ae"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 09 14:35:18 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 09 14:35:18 2011 +0000"
      },
      "message": "am 19998120: Merge \"Bug 5478024 drop after decode if can\\\u0027t drop before\" into ics-mr0\n\n* commit \u002719998120f53caceb620f138c6eea182f1e693660\u0027:\n  Bug 5478024 drop after decode if can\u0027t drop before\n"
    },
    {
      "commit": "471af5aaea2d2491a77dba379771f7c96b9ca3c3",
      "tree": "29609e7feb5c548e28ce94f88b4445c5c373d725",
      "parents": [
        "3b86c964df855a9740c446e984309b719c3ec37c",
        "936a981ba15d528a023311aa32f46446813551d9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 08 10:40:20 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 08 10:40:20 2011 -0800"
      },
      "message": "resolved conflicts for merge of 26f70db9 to master\n\nChange-Id: Ib1536b1a4c9eeff80e0726b3e61cee12057cd120\n"
    },
    {
      "commit": "936a981ba15d528a023311aa32f46446813551d9",
      "tree": "324a081cdeffe2566802e2224dfa9b9798182c05",
      "parents": [
        "e1a8a719c7c62fdb337b71f68844ae20042c2b79",
        "3901e5d87573447db33fb9930871a1f5266a9b2c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 08 08:48:31 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 08:48:31 2011 -0800"
      },
      "message": "Merge \"Remove surface legacy APIs and code.\" into ics-mr1"
    },
    {
      "commit": "683525b61bc1b58b4fd9e1b3ef9ed3b0c3bf34ae",
      "tree": "495b8c8bd23d3d1114b0538aa92030a7dcf90693",
      "parents": [
        "ee74c46968e632915bdff1af5d59a1b2ca3ac796"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 04 18:05:35 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 04 18:05:35 2011 -0700"
      },
      "message": "Bug 5478024 drop after decode if can\u0027t drop before\n\nChange-Id: Iaa64553be1a710da5d42be4e3a1e1d6dc873e371\n"
    },
    {
      "commit": "ee74c46968e632915bdff1af5d59a1b2ca3ac796",
      "tree": "bf203cb52a3c051c326dc2c9c65c7f367abbcc86",
      "parents": [
        "2cf981a8e3dcc815e422f21ae4f09e17934906e1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 03 11:00:21 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Nov 03 18:15:43 2011 -0700"
      },
      "message": "DO NOT MERGE Poll input data with a small timeout and don\u0027t consume a full core.\n\nChange-Id: I3c288698920fe6ead0df24a52330483609821a41\nrelated-to-bug: 5549263\n"
    },
    {
      "commit": "0bdcaf9c5466cf9c84a8c98e160411ab74f05f4b",
      "tree": "88193780bffad233d9cb7237a83bda250c364c11",
      "parents": [
        "ef7a78943ddbd22170cbf430aa9d2b2d9603d69c",
        "1183a4ab06b9fe01fe39a4b8728bfc71789361fc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 03 18:12:39 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 03 18:12:39 2011 +0000"
      },
      "message": "am e395f645: Poll input data with a small timeout and don\\\u0027t consume a full core.\n\n* commit \u0027e395f645aa4c30a4fad8beb3da6f8fad72338617\u0027:\n  Poll input data with a small timeout and don\u0027t consume a full core.\n"
    },
    {
      "commit": "1183a4ab06b9fe01fe39a4b8728bfc71789361fc",
      "tree": "00ddd671c9cccb82663b0b6928880307f25af975",
      "parents": [
        "254c2211b5088bb7d84d7126306aad7763b58372"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 03 11:00:21 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 03 11:00:21 2011 -0700"
      },
      "message": "Poll input data with a small timeout and don\u0027t consume a full core.\n\nChange-Id: I3c288698920fe6ead0df24a52330483609821a41\nrelated-to-bug: 5549263\n"
    },
    {
      "commit": "3901e5d87573447db33fb9930871a1f5266a9b2c",
      "tree": "2ed377c9705a41c95cbc6ea29d683cd646ff2dc8",
      "parents": [
        "841fa37451fb74f3d5978a15aab606bbb67e8c39"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 25 13:45:00 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 28 09:39:23 2011 -0700"
      },
      "message": "Remove surface legacy APIs and code.\n\nAll surfaces are now supported through surface textures.\n\nChange-Id: I95dd823e7099c0c32a48a1121624149dcc29d9c6\n"
    },
    {
      "commit": "d7a07f295a291496111b56a4886411c237ba6dc9",
      "tree": "ab70a053878c6b511317e91790cfb0d824b3e641",
      "parents": [
        "4b8bb4ee7d1d64dc1cd5478a3772f97e4a4a00d7",
        "841fa37451fb74f3d5978a15aab606bbb67e8c39"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 28 16:17:54 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 28 16:17:54 2011 +0000"
      },
      "message": "am 27ed1249: Merge \"Properly report that we\\\u0027re no longer playing after receiving event\" into ics-mr1\n\n* commit \u002727ed12492dfbec6ec67b66ff3cf60febce370b01\u0027:\n  Properly report that we\u0027re no longer playing after receiving event\n"
    },
    {
      "commit": "a4af2143ecbd630e946647c1b5f90fda8f61ebb3",
      "tree": "90937772071f770fd7fb21a17a0ddb1f05d4b936",
      "parents": [
        "1d2acaffde56ad79e6e96f228d7857863462397c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 26 15:23:31 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 26 15:23:31 2011 -0700"
      },
      "message": "Properly report that we\u0027re no longer playing after receiving event\n\nMEDIA_PLAYBACK_COMPLETE or MEDIA_ERROR.\n\nChange-Id: I03eeba751d3728adb33d9c66de4c7444a91696f3\n"
    },
    {
      "commit": "3856b090cd04ba5dd4a59a12430ed724d5995909",
      "tree": "a24e4c98fa6049fd8085826be838000f9a67e39b",
      "parents": [
        "1d2acaffde56ad79e6e96f228d7857863462397c"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 26 09:57:54 2011 +0100"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/143865\n\nBug: 5449033\nChange-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a\n"
    },
    {
      "commit": "2bfdd428c56c7524d1a11979f200a1762866032d",
      "tree": "83bb72ba82f689cc704010c06a51a9963479bab4",
      "parents": [
        "f337772630b0a1b48d7828647d1079ebdc22919d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 11 15:24:07 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 13 11:31:06 2011 -0700"
      },
      "message": "NuPlayer is now taking on the task of streaming over RTSP.\n\nChange-Id: Ie204db8810807f1e7981959e34dc0149e5d9563a\n"
    },
    {
      "commit": "eac68baf095aeef54865c28b6888924dc6295cbd",
      "tree": "a1ca9c5de638d21e07be1aab9f25d01e118597e7",
      "parents": [
        "797ab6072402b12721dc226a9ebde3546e7640e9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 27 12:12:25 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 27 12:13:37 2011 -0700"
      },
      "message": "Signal an appropriate error even if there are no active streams yet.\n\nChange-Id: I3ac1053ad288558b62ee18056dfd0a9ce0da8f49\nrelated-to-bug: 5372901\n"
    },
    {
      "commit": "dc9bacd838442a524585887e6ea6696836be2eda",
      "tree": "230135b6bc20bff2be5a8292e91c0fac86201039",
      "parents": [
        "ece731de0c0af30917316d55313f25c56f91960d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 26 10:53:29 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 26 10:53:29 2011 -0700"
      },
      "message": "Propagate error signalled by the source all the way to the output EOS notification.\n\nChange-Id: I30e959a6d669f09745c59fbdebee08f869511cf7\nrelated-to-bug: 5372901\n"
    },
    {
      "commit": "dc7747d7da61a72b6d26dacf7569de9455d77474",
      "tree": "45ba6cb15ed555139bf1e7a68901bdb1e69cc421",
      "parents": [
        "ad8e8bfea2da077248a9f217c029e14fefb01096"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 21 10:40:01 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 21 10:40:01 2011 -0700"
      },
      "message": "Bug 5234242 audio continues after discontinuity\n\nReduce to 8 buffers of 10 packets from 16 buffers of 20 packets.\n\nChange-Id: Ifdb5e15535989fbb6e5e1b70d5f9f71dc66a5c83\n"
    },
    {
      "commit": "3fe62150fa3dd6d25cb84aad80bc9e27ddd16c45",
      "tree": "4d969afd449d31381899275bf9b9fa2a87f9a24e",
      "parents": [
        "078cfcf7cce9185ec7559910d08b0bc02bfc88a3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 16 15:09:22 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 16 15:19:59 2011 -0700"
      },
      "message": "In order to recover from video lagging behind audio, drop avc frames\n\nthat are not referenced by other frames before feeding them into the decoder.\n\nChange-Id: I822190af8f8329567bff8da1ea23136d0a765481\n"
    },
    {
      "commit": "078cfcf7cce9185ec7559910d08b0bc02bfc88a3",
      "tree": "d4fb458318a3f0b3982b05e0c79a2cfc447dd732",
      "parents": [
        "5dc2812abddde309234edc786a541d251c4f820a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 15 12:25:04 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 16 10:44:02 2011 -0700"
      },
      "message": "Various improvements to nuplayer playback\n\n- Drastically cut down the number of times we supply the AudioSink with data\nby estimating the time until the sink would run out of data and then scheduling\na refill in advance of that.\n\n- Use a dedicated looper for video decoders since they are currently taking\ntoo long to return from OMX_FillThisBuffer (bug 5325201)\n\n- Revise thread priorities for the OMX dispatcher and software codecs, instead\nof running them at ANDROID_PRIORITY_AUDIO, they now only run at\nANDROID_PRIORITY_FOREGROUND\n\n- Since threads created by pthread_create inherit all of the parent threads\nattributes including thread priority, briefly reset thread priority to\nANDROID_PRIORITY_FOREGROUND before instantiating OMX components and then\nrestore it.\n\nChange-Id: If9332a3a20dad5485333d68c11de0d2d5d3fffc3\n"
    },
    {
      "commit": "714aa7b7c52ce07d5fb44870c0853b4d8e5a758e",
      "tree": "57b8bef529101db2340303e0d6c5a842f2cd9aaf",
      "parents": [
        "9215ea4cd8bc5f9c9770c5c34a009dc7c6068f86"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 13 08:28:38 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 13 09:48:22 2011 -0700"
      },
      "message": "Don\u0027t post position updates too frequently\n\ni.e. don\u0027t hog my message queue.\n\nrelated-to-bug: 5284760\nChange-Id: I8e2d36a11dbee1567b18ed13dc5257a65c6eeda7\n"
    },
    {
      "commit": "06528d7f18ad01377357d337eaa3e875a242bd2d",
      "tree": "c08f45ba206b07b864f7a153f65fc739ae51fe1c",
      "parents": [
        "18ac5407da14dad9731f40ffc9a56bee73830019"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:29:05 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:29:05 2011 -0700"
      },
      "message": "I have one HLS stream that switches stream PIDs from one bandwidth to the next\n\nthis change intends to support its very limited case and signals an error in\nall other cases of unexpected PID changes that we cannot recover from.\n\nChange-Id: Icbfdf9fe7461969e2a8781ed416f54d891dd789a\n"
    },
    {
      "commit": "18ac5407da14dad9731f40ffc9a56bee73830019",
      "tree": "f7574b9ebd7cd610f873d064a0dee23a32b16a4b",
      "parents": [
        "935456794a8d572368ebe942d13451f7d71a9f4e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 15:04:25 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 15:35:49 2011 -0700"
      },
      "message": "Discontinuities are only signalled on streams that have been identified, i.e.\n\nthose that have a queue. This ensures that the player doesn\u0027t observe discontinuities\nthat don\u0027t match up across streams.\n\nAlso, make sure output buffers arriving from the decoder to be rendered are sent\nback to the decoder if we started flushing.\n\nFinally, don\u0027t parse TS packets for streams we don\u0027t support. And don\u0027t allocate\nmemory for them.\n\nChange-Id: I708e0de4cba8110a62e4c8ceb1e5702430d5d2bb\n"
    },
    {
      "commit": "c4c17d47b674b425fb6c399822c0ab3258543c0a",
      "tree": "7e41c2ed3db28d1c61ddd28175b19c2d954f3549",
      "parents": [
        "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 30 16:06:28 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 30 16:06:28 2011 -0700"
      },
      "message": "ATSParser now supports a mode in which PTS is considered to be absolute time\n\ni.e. PTS 0 \u003c\u003d\u003e media time 0\n\nChange-Id: If10a0f98c129b95e8430dc419664b1def92e547e\n"
    }
  ],
  "next": "cb67cd1b51ff9ab221e3124cf7e546515fef3c87"
}
