)]}'
{
  "log": [
    {
      "commit": "dbdaa08cbed61b9ba4afc43f0ce0230346a1ca2f",
      "tree": "bc8d6146f69c5ed647262574c86bec7a3d57f1af",
      "parents": [
        "306c92dabc524f408445f7da2524c7a5e77ade63",
        "f4c0a94ab32541611f5ed6d407fc25b394c1988b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 12 00:22:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 11 18:48:29 2014 +0000"
      },
      "message": "Merge \"propogate heartbeat error code to app\" into lmp-dev"
    },
    {
      "commit": "f4c0a94ab32541611f5ed6d407fc25b394c1988b",
      "tree": "345e7e7179fa38707c2c82926b14a16ed8f6f4f4",
      "parents": [
        "ced1c2f8f6c422063092f5cc5c675ccdebb2dc10"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 11 15:14:10 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 11 16:31:15 2014 -0700"
      },
      "message": "propogate heartbeat error code to app\n\nBug: 16885604\nChange-Id: Ib6c60f0ef8cf72aa1aac67a75121142bff304018\n"
    },
    {
      "commit": "7c4f0d757bfeedaab4b7ef4ccf5b0a72ec8f4306",
      "tree": "2955488eabae107a5ea3eb510aa867d05c2570f7",
      "parents": [
        "a912c194ded6c9ece78c492c68c3763f284bb5d5"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 09 18:53:31 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Aug 08 18:32:22 2014 -0700"
      },
      "message": "NuPlayer: getSelectedTrack\n\nChange-Id: If5251f89b881e7f268e11a06cd3685d794c958b6\n"
    },
    {
      "commit": "ced1c2f8f6c422063092f5cc5c675ccdebb2dc10",
      "tree": "cab0a795dc8f7210d51aaf036585e06d20f19179",
      "parents": [
        "a19f33e4e50cda5d5953fa0cc662502262ac9dfd"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 08 15:22:35 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 08 15:22:35 2014 -0700"
      },
      "message": "some clean up of video size change notification\n\nneed to consider rotation when notifying video size change after\ninitial prepare, in addition to after an output format change.\n\nBug: 16870964\nChange-Id: Icd1c9e901ac932e720ce95b8a983c0edcf251c35\n"
    },
    {
      "commit": "a19f33e4e50cda5d5953fa0cc662502262ac9dfd",
      "tree": "358e0c6547bc9cdf4e6e3c884edeb466ce234ac1",
      "parents": [
        "b189a5b37cd1768f996096122b9541d9fa29ec43"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Aug 07 15:35:07 2014 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@google.com",
        "time": "Fri Aug 08 07:44:00 2014 -0700"
      },
      "message": "delay data source creation for GenericSource prepare time\n\nBug: 16708180\n\nChange-Id: I9d578ef5e2edaed50279d28d3831c68556468f39\n"
    },
    {
      "commit": "b189a5b37cd1768f996096122b9541d9fa29ec43",
      "tree": "f4bee06f2f2782649482cb6515e0b2ef0e589f7b",
      "parents": [
        "ef28532ffcc5bef44301f0c63d5abf3c2feb4921"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Aug 07 06:11:39 2014 +0000"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Thu Aug 07 11:50:28 2014 -0700"
      },
      "message": "Revert \"NuPlayer: don\u0027t feed decoder input data during flushing.\"\n\nThe previous patch results in MediaBuffer leakage.\n\nThis reverts commit 69a85b792c31033a99c8858e3b1a3c2ea68b6278.\n\nBug: 14955925\nBug: 16303659\nBug: 16467066\nBug: 16849601\nChange-Id: Ib1892b7603a97e12b7ee228fd5a4009700cdc988\n"
    },
    {
      "commit": "0893eaf7d21e3a50b81324673eaa91a6b77a39c2",
      "tree": "3bdedd121260198b93c7d91f5d48ba6c58147d3f",
      "parents": [
        "29e09664c2c5b49d78f2666d38a812502a36e26b",
        "309aa8bf5e4cd66fe988adf2654cac3fadc2a1c3"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Aug 06 23:19:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 06 17:14:55 2014 +0000"
      },
      "message": "Merge \"httplive: timestamp reporting, track selection\" into lmp-dev"
    },
    {
      "commit": "3de157dd8f9cd45bf9b0406268f5830887105ae1",
      "tree": "4c3423bb8c2005aac32ab3519ad73978d144b8ad",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 05 20:54:44 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 06 15:23:54 2014 -0700"
      },
      "message": "some fixes for crash when extractor creation fails\n\n- prefetch data for sniffing\n\n- notify error instead of crashing if extractor is NULL\n\nBug: 16818302\n\nChange-Id: I56ff4996d99ac2811d19d141f7ff7acdd7c1da17\n"
    },
    {
      "commit": "309aa8bf5e4cd66fe988adf2654cac3fadc2a1c3",
      "tree": "7958aa68f244c1f1d0d8b98efe934d1c3d60ce2d",
      "parents": [
        "3423bbdb05f843a64356fa24e8657f03ecbb7d65"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jul 29 18:34:36 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Aug 05 20:46:56 2014 -0700"
      },
      "message": "httplive: timestamp reporting, track selection\n\nBug: 15153976\nBug: 15763638\nBug: 16351654\nChange-Id: I4462276d4b7342647286a0ca4be11692ce52ff6d\n"
    },
    {
      "commit": "e46711343b43786c049a007369a72c1c78e6c5db",
      "tree": "dc3e0d4fd6c340fd482faa7008e91067a4af2d3d",
      "parents": [
        "b15486f973f80063ae2d436f7d71667b592c6fc9",
        "69a85b792c31033a99c8858e3b1a3c2ea68b6278"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Aug 05 21:53:08 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 05 00:34:22 2014 +0000"
      },
      "message": "Merge \"NuPlayer: don\u0027t feed decoder input data during flushing.\" into lmp-dev"
    },
    {
      "commit": "69a85b792c31033a99c8858e3b1a3c2ea68b6278",
      "tree": "94cf65c46392c04271e06cfa9e136069e3586130",
      "parents": [
        "d0fded31e473e909c018f534d3019fb5168bdcd6"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Aug 04 18:32:43 2014 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Aug 05 14:45:33 2014 -0700"
      },
      "message": "NuPlayer: don\u0027t feed decoder input data during flushing.\n\nBug: 14955925\nBug: 16303659\nBug: 16467066\nChange-Id: I7c258b986ae711357bd7e636b79853f8f3959d32\n"
    },
    {
      "commit": "b15486f973f80063ae2d436f7d71667b592c6fc9",
      "tree": "8983128e0a623765f966e0637c2c2ba3c0dbf7e0",
      "parents": [
        "ac29afacbb34b92f1948188e5353fce5a252ccb3",
        "7e892180f3992c088dc0d44f0b0e54ace4dabe3c"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 05 21:21:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 05 00:34:22 2014 +0000"
      },
      "message": "Merge \"set secure flag for secure file playback\" into lmp-dev"
    },
    {
      "commit": "7e892180f3992c088dc0d44f0b0e54ace4dabe3c",
      "tree": "957e88ea9e121a96bcbb7557427aa16406d61b14",
      "parents": [
        "c2320223222fe4507b6d67f6b8b4001d26c77a9c"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 05 11:58:21 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 05 12:19:32 2014 -0700"
      },
      "message": "set secure flag for secure file playback\n\nBug: 16786456\nChange-Id: I06f18b0e9c3f65e3e127369baa1f9ea8c9307762\n"
    },
    {
      "commit": "ccad786f3497f223cbc5af981b08b460433ee622",
      "tree": "bcc9dfaced98755c01a65760ddd20a1c371201ab",
      "parents": [
        "7a9b25940309e2967820daa13a7f71e41293d165"
      ],
      "author": {
        "name": "aarti jadhav-gaikwad",
        "email": "agaikwad@nvidia.com",
        "time": "Sat Aug 02 16:21:32 2014 +0530"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 05 10:28:30 2014 -0700"
      },
      "message": "stagefright: Pass audio aac subformats in offloadinfo\n\nPass audio aac sub formats in offloadinfo according\nto aac profile. Audio HAL can take decision about offload\nusing DSP capabilities\n\nChange-Id: Ice277e8b6561b7a7db92c474f23f8041ebb35e8c\n"
    },
    {
      "commit": "25644c502ed8ec13bcf496613e65ec8edb1af4a7",
      "tree": "59bee89e1487bcc606649a4f568fdc9205aa57e9",
      "parents": [
        "3c6fac2c807e4234953dcdc793029a82d1f3a089",
        "e26940f11c3f2040bced09f06a8f374b50c985fb"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 31 21:43:22 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 31 19:45:19 2014 +0000"
      },
      "message": "Merge \"GenericSource: timed text support\" into lmp-dev"
    },
    {
      "commit": "3423bbdb05f843a64356fa24e8657f03ecbb7d65",
      "tree": "ebe2761d0abe5f284d2c743efd2dab996b7be5c4",
      "parents": [
        "63c0ce7ab7bd99d51414dcb4f765bc6faabf367d"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 16 15:47:09 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 31 10:32:23 2014 -0700"
      },
      "message": "GenericSource: support track (de)selection\n\nBug: 15153976\n\nChange-Id: Idfce856b4ca5fa7853da857757490798bc3ffe1e\n"
    },
    {
      "commit": "e26940f11c3f2040bced09f06a8f374b50c985fb",
      "tree": "362db6e16247538d75374f49845893732b8be239",
      "parents": [
        "3423bbdb05f843a64356fa24e8657f03ecbb7d65"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 31 10:31:26 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 31 10:32:23 2014 -0700"
      },
      "message": "GenericSource: timed text support\n\nBug: 16385674\nChange-Id: Ib322cc13488dcadf2409921272cd469304b0af37\n"
    },
    {
      "commit": "63c0ce7ab7bd99d51414dcb4f765bc6faabf367d",
      "tree": "04a260808b32378ba998e17f90873fdb6fbe454d",
      "parents": [
        "1d5b45f70f684996acc24fbf3e30fa5af0a0c642"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 31 07:13:32 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 31 07:15:13 2014 -0700"
      },
      "message": "mediaplayerservice: initialize mIsWidevine\n\nBug: 16641557\nChange-Id: I77aad6e710117a16093726bf3b36360904fbe148\n"
    },
    {
      "commit": "a2e14302d4b5ca5443611d0c05218b9da4cc64a6",
      "tree": "d856c68fe9c5e87d7058110c5994b2ff24f21fe9",
      "parents": [
        "a298101317e5472f6b6a12e6ddeafdc4064bd5b2"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 31 12:07:58 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 31 12:35:25 2014 -0700"
      },
      "message": "mediaplayer: add looping support to NuPlayer\n\nBug: 16641557\nChange-Id: I433158e6e585b4714cfd6d89562ecd0587a07ae2\n"
    },
    {
      "commit": "a298101317e5472f6b6a12e6ddeafdc4064bd5b2",
      "tree": "ca05f65d99b30b045799216ded4502d04a3b765e",
      "parents": [
        "3423bbdb05f843a64356fa24e8657f03ecbb7d65"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 30 17:41:24 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jul 31 11:04:54 2014 -0700"
      },
      "message": "NuPlayer: fix av discontinuity race\n\nAssumption:\n  NuPlayer must see both (a/v) discontinuities before resuming.\n\nExample issue:\n  Suppose we\u0027re changing the video track, so the video source queues a\n  DISCONTINUITY_FORMATCHANGE, and the audio source queues a DISCONTINUITY_NONE.\n  Consider this sequence of events without this change:\n    1. audio discontinuity seen by player\n    2. mFlushingAudio \u003d FLUSHED\n    3. video discontinuity seen by player\n    4. mFlushingAudio !\u003d NONE so no performScanSources is queued\n    5. video decoding shuts down without being restarted\n\nBug: 15153976\nChange-Id: I659550d9c0f883828103142abead857f576f25b1\n"
    },
    {
      "commit": "b382340f33ac2dc26fe825ceb3ef98bac8af974c",
      "tree": "48e9ab0f8408fe8fb15ffec616a4eef790a366c4",
      "parents": [
        "d089a740e1e61d9503d2c84259bacb3e06c58a0e",
        "e9e63bcf6c36351f1129b0bdc5e93f17f0f9f0b4"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jul 31 01:27:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 25 23:00:08 2014 +0000"
      },
      "message": "Merge \"handle rotation in NuPlayer\" into lmp-dev"
    },
    {
      "commit": "e9e63bcf6c36351f1129b0bdc5e93f17f0f9f0b4",
      "tree": "d48520e1b56036184891f9868fb045d20298d35f",
      "parents": [
        "a6d28be0be0fa813080a021bd6a5920a8cb4fbb1"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 30 17:25:06 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 30 18:07:50 2014 -0700"
      },
      "message": "handle rotation in NuPlayer\n\nBug: 16653284\nChange-Id: I54165041da5a13498d627eee1b3ec59ef3c923b0\n"
    },
    {
      "commit": "cb48eacb6f8857c7857bb28d6a13d4a0d417f2bd",
      "tree": "622f6f5ffbc9126d5cb0783109d8a7a7eb4119f8",
      "parents": [
        "a6d28be0be0fa813080a021bd6a5920a8cb4fbb1"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jul 30 13:40:49 2014 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jul 30 13:53:22 2014 -0700"
      },
      "message": "Revert GenericSource track selection changes\n\nThis reverts commit bace25b0fbcd5101d2db288b0c70c4a239f0e815.\nThis reverts commit eb1735e343a93830df259ae8882160bb0d79dcb5.\nThis reverts commit 05312bc7478feec11d9ae88e951c0857a7a3f28d.\n\nBug: 16660839\n"
    },
    {
      "commit": "bace25b0fbcd5101d2db288b0c70c4a239f0e815",
      "tree": "b9ba2e40b3a02ba0ca5083b644f092238222603c",
      "parents": [
        "ef9c5ade2308f9eb6f222db3c4796e196f0ab76c"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Jul 25 14:14:34 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Jul 28 13:06:42 2014 -0700"
      },
      "message": "GenericSource: start/stop tracks correctly on selection\n\nChange-Id: I10343151f930a4ab778a6d2574ab5165af2013ba\n"
    },
    {
      "commit": "eb1735e343a93830df259ae8882160bb0d79dcb5",
      "tree": "5c2c154082effb530ecd7bfbd1c5a61986b6182a",
      "parents": [
        "ec3c71ed320e5e2252a84aa8b35ac4b9a6f92712"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 23 15:53:14 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Jul 25 18:09:14 2014 -0700"
      },
      "message": "GenericSource: timed text support\n\nBug: 16385674\nChange-Id: I954cc463b55af4b93c6a6e714115db4fda729dc8\n"
    },
    {
      "commit": "ec3c71ed320e5e2252a84aa8b35ac4b9a6f92712",
      "tree": "c102fda9b39ab0f5b4843ff2597dc50efb7e76e4",
      "parents": [
        "6c28f1fb6d8262a327ffa8be5bb4c84c9ef7ce62",
        "d3b0bbb8a37f90fba84eb4e95c58aa0fec6c51e7"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sat Jul 26 01:04:22 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 25 21:16:23 2014 +0000"
      },
      "message": "Merge \"NuPlayer: timed text support\" into lmp-dev"
    },
    {
      "commit": "d3b0bbb8a37f90fba84eb4e95c58aa0fec6c51e7",
      "tree": "35bca9f45556343d16e4de7ee37709c4f2b3780f",
      "parents": [
        "05312bc7478feec11d9ae88e951c0857a7a3f28d"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 23 15:00:25 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Jul 25 16:06:36 2014 -0700"
      },
      "message": "NuPlayer: timed text support\n\nBug: 16385674\nChange-Id: Ifa9fbc17a1276aa774d57b82cdce500876a0b543\n"
    },
    {
      "commit": "81e50d0c782cc18eab4ef40ecd6c7f36df50fea5",
      "tree": "64067ccf86de551b41257baee37afbbf103bd79f",
      "parents": [
        "83b8808faad1e91690c64d7007348be8d9ebde73"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jul 24 10:28:47 2014 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jul 24 10:45:39 2014 -0700"
      },
      "message": "Reset the value for Vector of pointers.\n\nBug: 16467066\nChange-Id: I3674e07779a59f4d4fa639d066ed1988df89b3f5\n"
    },
    {
      "commit": "05312bc7478feec11d9ae88e951c0857a7a3f28d",
      "tree": "5e019a1b0764e483a613c49cc0998da0c50f2089",
      "parents": [
        "225d5b20409fd400bfa4ed5e9bc1d5babb498471"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 16 15:47:09 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jul 22 18:38:20 2014 -0700"
      },
      "message": "GenericSource: support track (de)selection\n\nBug: 15153976\nChange-Id: I522b1f9f0ffedf4edbea03a6654a6dbc0262860a\n"
    },
    {
      "commit": "4c9a0e3e30e97a31fcd7e41cb77d15427cb9c50b",
      "tree": "e373cd1b9722b0c8303c3ba9863aced2c034bfb5",
      "parents": [
        "f6f4c0d7c5e2d33b38f080896466e56e2d0a97d4",
        "05312bc7478feec11d9ae88e951c0857a7a3f28d"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 23 01:41:41 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 22 16:21:19 2014 +0000"
      },
      "message": "Merge \"GenericSource: support track (de)selection\" into lmp-dev"
    },
    {
      "commit": "3a2956d148d81194e297408179e84a47a309ef48",
      "tree": "01af40a9fb8f1d5f0703ec8525f2a24583b8f8d7",
      "parents": [
        "ecc01ef05aea6b04aafc1b7d2d8f8519d0a8d928"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 22 16:01:33 2014 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 22 17:27:23 2014 -0700"
      },
      "message": "Fall back to s/w decoding when audio offloading fails.\n\nChange-Id: Icde3d65c964b2a13fb1c6636adcce52ae048a3fb\n"
    },
    {
      "commit": "095248375e29adde961ec2a44989ecb3a6dda6a2",
      "tree": "41c5e1378f8c7274b257837a4356efc54436d330",
      "parents": [
        "cc227036b05f7c2f960a89c567a61f9decefe742"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 17 14:29:51 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 17 21:14:52 2014 -0700"
      },
      "message": "nuplayer: support widevine sources\n\n- handle widevine:// scheme\n- add separate looper for renderer (as it can block initial buffer\n  handling if all buffers are used)\n- initiate secure codecs before source is started\n- don\u0027t read secure buffers\n- share ACodec\u0027s input buffers with Widevine source\n\non the decoder side\n\n- keep track of mediabuffers released by widevine source\n- keep track of dequeued input buffers (for safety)\n- release mediabuffer when buffer is subsequently dequeued.  (This\n  was hardcoded into OMXCodec to do this when buffer-empties message\n  was handled, but MediaCodec does not support such functionality.)\n\nBug: 15699665\nChange-Id: I4a369443294e45c644be8b0257010e52db1d7c9b\n"
    },
    {
      "commit": "cc227036b05f7c2f960a89c567a61f9decefe742",
      "tree": "d0603a8e06d1c0de45c0c54177e463af7bf261d9",
      "parents": [
        "3cb576166020bfdc1522b33919fe5ff8d211d0a3"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 17 15:33:06 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 17 19:35:25 2014 -0700"
      },
      "message": "nuplayer: add widevine support to GenericSource\n\nBug: 15699665\nChange-Id: Ided823bd0b1118bbabb288cf62d6389518f820a9\n"
    },
    {
      "commit": "dd235727a1b4e283deeb581559f99c2c8889da07",
      "tree": "f0adac3a3a1cc1c48e40caf470452608f12cbf20",
      "parents": [
        "d81d48961da30f657fb095ed00a697bd50266269"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jun 12 14:49:23 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 16 20:32:21 2014 +0000"
      },
      "message": "GenericSource: implement getTrackCount/getTrackInfo\n\nBug: 15153976\nChange-Id: I0204c4188d485cda026497469c7cde24f7bd5c95\n"
    },
    {
      "commit": "bc2fb720bbd0acd122bacc67e844e982d068f6f9",
      "tree": "180dc675e82bdfe264f16cff93c719e576a5be06",
      "parents": [
        "0dba9b1719a598f5d78cbcef4b0b9e47313f1037"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 08 16:37:57 2014 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jul 09 16:29:58 2014 -0700"
      },
      "message": "Add support of audio offloading for NuPlayer.\n\nChange-Id: Ic83973339fb46a83b48382e6097925f45d200867\n"
    },
    {
      "commit": "ba5e39b994b44cc458708eedd26c2d50404c9a46",
      "tree": "fdad016a3634de91ec5e89573bf9d46b0beaf45e",
      "parents": [
        "718cee5f3ba7c0a055fbeced90f26296f8acb117",
        "632740c58119a132ce19f6d498e39c5c3773971a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jul 08 23:30:13 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 07 17:47:39 2014 +0000"
      },
      "message": "Merge \"HLS: do not discard packets when queuing explicit discontinuity\""
    },
    {
      "commit": "862f8455eaacc1ffb5d8911f0bc7ecc3cf7ec46c",
      "tree": "27f7ae818997dde8df89fac5b65fd21180b21911",
      "parents": [
        "e8f2c6cfe9afc5b303ab6b0fb51e18ddce512b54"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jun 26 19:55:23 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jul 08 10:18:33 2014 -0700"
      },
      "message": "handle emulation_prevention_three_bytes for AVC\n\nbug: 15917805\nChange-Id: I824fe7eea807f8faba6b149c31890b7a5df87825\n"
    },
    {
      "commit": "632740c58119a132ce19f6d498e39c5c3773971a",
      "tree": "834b867457d9f538f452e58c2372d791668befa5",
      "parents": [
        "e8f2c6cfe9afc5b303ab6b0fb51e18ddce512b54"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jun 26 13:03:47 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jun 26 16:30:00 2014 -0700"
      },
      "message": "HLS: do not discard packets when queuing explicit discontinuity\n\nin case of explicit discontinuity (#EXT-X-DISCONTINUITY tag in the\nplaylist), do not discard packets that\u0027s already queued.\n\n(when seeking, the old fetcher will be discarded so this won\u0027t affect\nseeking case.)\n\nBug: 15020526\nChange-Id: I5d3fc489df35e3bc44acb1ee7851571cb99cb56b\n"
    },
    {
      "commit": "c1f4b2b73fe9432cb75ce1dd368475a2867e70ed",
      "tree": "88b7af43ca9c2d1752a28c602bacb4adc38e6172",
      "parents": [
        "7a4d7d6670f1766442b54045fb420dbf42b75750"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jun 17 14:48:32 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jun 23 10:24:14 2014 -0700"
      },
      "message": "Parse trex and mehd boxes\n\nAlso get duration from mvhd if available, use that in addition to track\ndurations to determine total length of file, clear track header\nstruct so we don\u0027t read uninitialized garbage from it, and take\ncomposition time offset into account for proper ordering when B frames\nare used.\n\nb/15669839\n\nChange-Id: Ibf3e35b5c7299bac11d0e78a391545fc325dd2d0\n"
    },
    {
      "commit": "a7fa1d9530b6870f2c7850e3025d7db963661803",
      "tree": "384a6c52d5b13b09860eab611c264384e5444592",
      "parents": [
        "404fced9bfa8fa423ee210a271ca051ffd1bec13"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jun 11 14:49:23 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jun 13 10:18:09 2014 -0700"
      },
      "message": "support for CEA-608 closed caption\n\nBug: 15470448\n\nChange-Id: Ic6a527f5c35a8ee0a08a5b043336e4d193216083\n"
    },
    {
      "commit": "404fced9bfa8fa423ee210a271ca051ffd1bec13",
      "tree": "fe0cf90c5346cdcd2fcc6a78a8c245018c5f6b55",
      "parents": [
        "31dcd338b3826928646d77f23f977ecdd52598a3"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jun 11 14:45:31 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jun 13 10:17:23 2014 -0700"
      },
      "message": "refactor getTrackInfo()\n\n(this is in preparation for supporting other cc source)\n\n- split into two methods: getTrackCount() and getTrackInfo()\n\n- move track info parcelling to NuPlayer\n\n- parcel in the mime type of the subtitle format\n\nBug: 15470448\nChange-Id: If00724d8c3a2b2319cb9c5f29d3fe76347bfe947\n"
    },
    {
      "commit": "704e72658b1082264a26a83c50046da34f07d1a1",
      "tree": "4c0877c83a827dafae8153430034a2da9d9ad9b2",
      "parents": [
        "ee777157c12a02e7350e18d49f7571b1222dfa69"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jun 04 16:21:56 2014 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jun 05 09:25:32 2014 -0700"
      },
      "message": "Added paused state to NuPlayerDecoder\n\nThis prevents decoder from requesting new buffer until the decoder\nis resumed, and prevents processing a potential DISCONTINUITY while\nthe player is still flushing.\n\nBug: 13133027\n\nChange-Id: I2f9fa9f00c8583aa6908809cb7c31ddde07cfaf0\n"
    },
    {
      "commit": "dd114d19f65d8a5cdfddbaf6d3ef8119c6169b28",
      "tree": "df8064291ebf7bd7f761656b8aa5a8826f2d8fa4",
      "parents": [
        "5584c58c7c952b5ed891bbff3b00a0be3f96196d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed May 28 15:23:14 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed May 28 15:23:14 2014 -0700"
      },
      "message": "Fix some NuPlayer issues.\n\nFixes OnSeekCompleted callback and calling getDuration immediately\nafter prepare().\n\nChange-Id: Ie58c509005cded278a0e50c87240b0a2d920b7d7\n"
    },
    {
      "commit": "1cd139824b2e6832f239cd27d8962d3239053c02",
      "tree": "a56580b67303cd3a4aef0ab6914facc98f6f9a83",
      "parents": [
        "e0381245dff04aa823a59aa8b85869eddab0f39f"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jan 17 15:12:51 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Mar 10 11:40:04 2014 -0700"
      },
      "message": "NuPlayer: use MediaCodec instead of ACodec\n\nBug: 11785204\nChange-Id: I1455bfc683469c7a69e565b179aceacbc5c459f5\n"
    },
    {
      "commit": "259f1624cf7b93ba831af10a616267487601c27f",
      "tree": "69e0a151701a0a3b97f88d0859f0f674219e073b",
      "parents": [
        "664334fc2204b9968e1600313383f5a6ff321811"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Feb 21 15:39:01 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Mar 10 11:40:03 2014 -0700"
      },
      "message": "Revert \"NuPlayer: Use a software renderer when using software codecs\"\n\nRemove software renderer support from NuPlayer because it is included\nin MediaCodec.\n\nChange-Id: I06e001df76df2e18ea8169620ff33aeec57e5ca2\n"
    },
    {
      "commit": "6d0a94ead4f6e62b8ca9b2b1d775ffcd0a7a7aab",
      "tree": "ae76d5da5f6acb66e553abc039e7e8d4bfc6c0f5",
      "parents": [
        "3a005b3b19b750afe24577ae322aff4602ca2740"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jan 23 16:18:22 2014 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Feb 24 11:26:54 2014 -0800"
      },
      "message": "NuPlayer side support for seamless format switch.\n\nAvoid reinstantiating decoder if seamless format switch is supported.\n\nChange-Id: I2c2be08d6da90cc835ec747d04a76db2313dfc7c\n"
    },
    {
      "commit": "240abcc4bf661a10ffca24859945796acc76ac6e",
      "tree": "b3d3669ccb1da7a3cf2fc27cbd30d4c596acbdbd",
      "parents": [
        "29182ee0515bd8dd56a22bc1d0c7cad7ca4cfd86"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 13 13:32:37 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 13 13:40:46 2014 -0800"
      },
      "message": "Remove unused FragmentedMP4Parser and friends. The functionality has been\n\nsubsumed into MP4Extractor.\n\nChange-Id: Ic1b6445660adfb985c604f1ca6f0c86585f8de04\n"
    },
    {
      "commit": "84333e0475bc911adc16417f4ca327c975cf6c36",
      "tree": "4973c505d7c73d883c2cd796bc66ba96312c4a7a",
      "parents": [
        "1d6fa7af1288b550faabe4ec2cf98684236723db"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 07 15:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 11 11:41:07 2014 -0800"
      },
      "message": "warnings be gone.\n\nChange-Id: Ie3bae3f037730e316d7fca12e7a3527973f752ef\n"
    },
    {
      "commit": "1d6fa7af1288b550faabe4ec2cf98684236723db",
      "tree": "a8801ca9a0925ba1faccf17acea4aa78d71a9d29",
      "parents": [
        "b82a9f105f89d6b3684c9f626918042bd8977912",
        "566be7c33fc56ae4c34168ecbee5316374f7e3c5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:47:53 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:53:20 2014 +0000"
      },
      "message": "resolved conflicts for merge of 566be7c3 to master\n\nChange-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce\n"
    },
    {
      "commit": "377b2ec9a2885f9b6405b07ba900a9e3f4349c38",
      "tree": "b938e1d75a1beefae86244f287ca22f4a277740d",
      "parents": [
        "cdda7bf4d3ca9cad6979374a18dd5be79ea83d80"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Mon Feb 03 12:35:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 11:40:06 2014 +0000"
      },
      "message": "Make frameworks/av 64-bit compatible\n\nContains the necessary changes to make frameworks/av build and work\non a 64-bit machine.\n\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n\nChange-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43\n"
    },
    {
      "commit": "8497416c40bae877bc67b0ef30bb41a73af54711",
      "tree": "34c4c44bab140953cfa9b3576f9a2a5e3c82f09d",
      "parents": [
        "1dd3da08445ac96e64a1ca72ba0c11876cc4d631",
        "429f2bf7527daf872a1bbdafca8ad28635b84644"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 10 12:51:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 10 12:51:29 2014 +0000"
      },
      "message": "am 429f2bf7: am e2307ccb: Merge \"frameworks/av: fix errors inside ALOGV\"\n\n* commit \u0027429f2bf7527daf872a1bbdafca8ad28635b84644\u0027:\n  frameworks/av: fix errors inside ALOGV\n"
    },
    {
      "commit": "94dcc94b16cc6c2a7aa02df2d0d6b8743d738d78",
      "tree": "56cdd5bda1b552f0c2cfc54efa0f44c4848c31ed",
      "parents": [
        "d66cd743525cc049033caa3e81cbdf74c72a4556"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 06 20:29:44 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 06 20:29:44 2014 -0800"
      },
      "message": "frameworks/av: fix errors inside ALOGV\n\nFix errors exposed by adding compile-time checking to disabled ALOGVs.\n\nChange-Id: I9602a4a485dffa3caad732c2a19ec0e41a0ac65b\n"
    },
    {
      "commit": "81e68448f3361eaf8618930471fdc3c21bdf5cbc",
      "tree": "afc00a9a35746f18f85200755870067b4d63dd80",
      "parents": [
        "412d4744efae64083e4f99a664e3efaba031af48"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 05 11:52:33 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 05 12:27:54 2014 -0800"
      },
      "message": "Remove no longer needed http proxy handling code, it\u0027s obsolete now\n\nsince we started to use java\u0027s HTTPConnection instead of the native\nimplementation. Also remove other remnants of the previous http implementation,\nsuch as accounting for the http user\u0027s uid.\n\nChange-Id: I60bfd31381ea40d2220db587ec5c433093b60034\n"
    },
    {
      "commit": "1b86fe063badb5f28c467ade39be0f4008688947",
      "tree": "d88660112d407540184ad8e1292ed8aa98fae317",
      "parents": [
        "5ce88270eb2d41462de8c4155673b802b2ca48cb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 29 11:13:26 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 04 15:11:53 2014 -0800"
      },
      "message": "FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code\n\nChange-Id: I9f74a86e70422187c9cf0ca1318a29019700192d\n"
    },
    {
      "commit": "d6074f08cc37843e8c599b2ab4b16d87c3bc67eb",
      "tree": "b9efca36c8d9890fcd86b33be746548a67e907c3",
      "parents": [
        "8115f4b206dbd04c620f062feb3c7785e2732ab3"
      ],
      "author": {
        "name": "Oscar Rydhé",
        "email": "oscar.rydhe@sonymobile.com",
        "time": "Tue Oct 15 09:54:08 2013 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Fri Jan 03 13:58:02 2014 +0100"
      },
      "message": "Fix compile error in NuPlayerRenderer debug print\n\nWhen activating verbose log prints in NuPlayerRenderer the build\nfails because a variable have changed but the log print hasn\u0027t been\nupdated.\n\nChange-Id: I3089b087d296c37dfe6379d7e75d5892912fef96\n"
    },
    {
      "commit": "e2d617f5ba7fb90f27b03e2593666b2c927e4dc9",
      "tree": "187992f0c2d4bc565ca24b34aa0ee78e359a3f68",
      "parents": [
        "92630351d265a61faae2dfe006a8bb330283aa7b",
        "2381f06f374ee0cb8bca0edf5388394432b00e6d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Dec 05 12:38:14 2013 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Dec 05 12:38:14 2013 -0800"
      },
      "message": "Merge commit \u00272381f06f374ee0cb8bca0edf5388394432b00e6d\u0027 into HEAD\n"
    },
    {
      "commit": "92630351d265a61faae2dfe006a8bb330283aa7b",
      "tree": "c3f2d9f3e92406c1a9922eba728a6499a9608aec",
      "parents": [
        "90892d1be84776f59a619ea4ef9ce51be5828ff8",
        "da38df5f080eb62a06b22c5bada4357cf756255e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 28 17:26:16 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 28 17:26:18 2013 +0000"
      },
      "message": "Merge \"NuPlayer: Use a software renderer when using software codecs\""
    },
    {
      "commit": "3e518fd5d679abb83b654e473ea0fa5f7f16235f",
      "tree": "96ca7ab7e49d6f1535bc459bf89d8a1040e5a219",
      "parents": [
        "9cae217050aa1347d4ac5053c305754879e3f97f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 01 10:33:18 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 01 10:33:18 2013 -0700"
      },
      "message": "Notify current video size if available\n\nb/11248101\n\nChange-Id: I0fa3b5592efcf400c86692002267da6825e331ad\n"
    },
    {
      "commit": "da38df5f080eb62a06b22c5bada4357cf756255e",
      "tree": "3adf6f4e8629b797f0a9a1ed71f6b9d73c20165a",
      "parents": [
        "e56f3c96fa6e7550b67e8b049f999aaa2ada1192"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Sep 25 16:05:36 2013 +0300"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Sep 25 16:35:33 2013 +0300"
      },
      "message": "NuPlayer: Use a software renderer when using software codecs\n\nThis mimics what is done in AwesomePlayer and MediaCodec -\nideally this logic perhaps should be moved into ACodec to\navoid having to replicate it in every caller.\n\nThis makes HLS and RTSP playback work in the emulator.\n\nChange-Id: I18027dc3e469889baaae3e1c4afb559de7d0f7d3\n"
    },
    {
      "commit": "4b7069dac546ad21cf62ca6132d50ea41857d08e",
      "tree": "a692fbb194536dcd7ee4f8e7681e7a36143267d5",
      "parents": [
        "c728c580fc512b50604f33f1c4581c500062b245"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 11 12:52:43 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 11 17:58:54 2013 -0700"
      },
      "message": "Add FLAG_CAN_SEEK_BACKWARD and FLAG_CAN_SEEK_FORWARD see flags\n\nAlso update seek flag in NuPlayerDriver, otherwise MediaPlayer will\nget wrong flags.\n\nBug: 10676387\n\nChange-Id: Ice30f27a9a04e37b4718d26228a407fea8d9e4fc\n"
    },
    {
      "commit": "dcb89b3b505522efde173c105a851c412f947178",
      "tree": "eb89386fb07021a6527b35ea3d8ecf80584c73b7",
      "parents": [
        "1cb4e1661e4144cb188c2c79b89804fcb902fd19"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 06 09:44:47 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 19 10:53:52 2013 -0700"
      },
      "message": "MediaPlayer: add listener for raw track data\n\nBug: 10326117\n\nChange-Id: I2c0bdf8adc67b11f8dc633423bee66897548f181\n"
    },
    {
      "commit": "cbaffcffee6418d678806e63097c19fe26d48fe0",
      "tree": "21af7d5eab33df7c6487290014f29a83b525734c",
      "parents": [
        "b8689b31813f55cbc1bf8e9ca0d46a9ee113e38a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 14 18:30:38 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 15 16:04:58 2013 -0700"
      },
      "message": "Add MEDIA_STARTED/PAUSED/STOPPED events to media players\n\nThis is needed for the MediaTimeProvider java interface, so it does not\ncontinually poll for current media time.\n\nNote: NuPlayer and AwesomePlayer do not correctly handle stop (pause\ninstead), so for those we will signal PAUSED.\n\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nChange-Id: I3c61e1bda475f131323f475c18a42e3ec66c9ae1\nBug: 10326117\n"
    },
    {
      "commit": "1545d35f871ff3527a716af659ddadebe3253548",
      "tree": "b54f893fe56f9fdf2dc9ed7718f050f302cc6635",
      "parents": [
        "0bc32ae1a8ef45f98101b78bfe64798875b569e3",
        "9f0e05978e236352fd2a4a7c6dce909755c36ead"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jul 08 11:27:52 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 08 11:27:52 2013 -0700"
      },
      "message": "am 9f0e0597: am 7266bc80: am ca7f1609: Merge \"Prevent double disconnects in RTSPSource\"\n\n* commit \u00279f0e05978e236352fd2a4a7c6dce909755c36ead\u0027:\n  Prevent double disconnects in RTSPSource\n"
    },
    {
      "commit": "7266bc80850dc327e9f18c27b81613f959399630",
      "tree": "661b92b78a01707e05a62323b286132f8714b02f",
      "parents": [
        "47a1fe04637793f48d808261b1fac47acc3de1e1",
        "ca7f160921a4a1a5da32ebe8fab1067bd8998a1f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jul 08 11:21:45 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 08 11:21:45 2013 -0700"
      },
      "message": "am ca7f1609: Merge \"Prevent double disconnects in RTSPSource\"\n\n* commit \u0027ca7f160921a4a1a5da32ebe8fab1067bd8998a1f\u0027:\n  Prevent double disconnects in RTSPSource\n"
    },
    {
      "commit": "0ad03bc59d090a0455f858d2f629834c105f6f37",
      "tree": "86eba1233c510ecc2217ae7d49c1780834d87c6e",
      "parents": [
        "a9aa6baa5d86fc1a5bd37fc636d766d9e3ad2507"
      ],
      "author": {
        "name": "Fredrik Rosin",
        "email": "fredrik.rosin@sonymobile.com",
        "time": "Wed Mar 06 13:42:53 2013 +0100"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Mon Jul 01 13:14:47 2013 +0200"
      },
      "message": "Prevent double disconnects in RTSPSource\n\nPrevent a null pointer from occuring by checking that we are not\nalready disconnected before performing a disconnect, in case\nmultiple disconnects have been issued.\n\nChange-Id: Ib88800cd246086fd57f77d10748d41b1aefe2084\n"
    },
    {
      "commit": "14f7672b5d450ed26a06fd3bb3ce045ea78b11b2",
      "tree": "1730ace584297a64946ed5dccc0ca596c2570d21",
      "parents": [
        "fbb70ce416b193655fbe5ff7f6c8676050bdf524"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 15 09:04:18 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 31 10:30:45 2013 -0700"
      },
      "message": "New HLS implementation supporting independent stream sources, audio-only streams\n\nand more.\n\nChange-Id: Icfc45a0100243b2f7a14a9e65696be45b67d6495\n"
    },
    {
      "commit": "5a7501304d815552c3bfaee8789821e4884d073b",
      "tree": "944512c454d0add19a0ff4036299495e3fd32027",
      "parents": [
        "159ef7310215bdf86f7d64a797cce3ff61951a2c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "message": "Handle the case where an asynchronous prepare was initiated and then\n\nthe mediaplayer was reset.\n\nChange-Id: Ib241747c5dc002b88a3854569c1f8340b2a8ef41\nrelated-to-bug: 8688986\n"
    },
    {
      "commit": "b5f28d4749b898d92fe5e56236b417e37b6fe84f",
      "tree": "944512c454d0add19a0ff4036299495e3fd32027",
      "parents": [
        "7f86d98317843838c4a5248c733bf95f9574fcab"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "message": "Handle the case where an asynchronous prepare was initiated and then\n\nthe mediaplayer was reset.\n\nChange-Id: Ib241747c5dc002b88a3854569c1f8340b2a8ef41\nrelated-to-bug: 8688986\n"
    },
    {
      "commit": "ca6867fbac7a69c4d7a253917ecf6d4abc18d49c",
      "tree": "e52f4f2870cc4a0c58743000d88a10f410c5247f",
      "parents": [
        "8461772f46769a384ea87b42848e2d77de529332"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 10:54:03 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 12:52:33 2013 -0700"
      },
      "message": "Fix a typo that would cause us not to shutdown/flush the decoders in\n\nsome cases.\n\nrelated-to-bug: 8630032\n\nChange-Id: I8e94b53b34e137e827e9630c65f3252ea91e4ebd\n"
    },
    {
      "commit": "da9740e63a835e610519bd235be9137d74b6d409",
      "tree": "db7e39018b0f9968994929ac178789b12d214854",
      "parents": [
        "f5c0211057be7a1d32f356d4162a84cce281394d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 10:54:03 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 12:52:33 2013 -0700"
      },
      "message": "Fix a typo that would cause us not to shutdown/flush the decoders in\n\nsome cases.\n\nrelated-to-bug: 8630032\n\nChange-Id: I8e94b53b34e137e827e9630c65f3252ea91e4ebd\n"
    },
    {
      "commit": "602f5bbd7596ec3fe447fde4329d5d4f0b370835",
      "tree": "15871fed5f74c20a01c45e1aa370f75be9ad9a00",
      "parents": [
        "474c6539e3592aece37616d0b39ef008b61260a0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "message": "Guard against mLooper \u003d\u003d NULL.\n\nChange-Id: I01aa0e47b55d0dffe34525edf9f055a5cb4dc70f\nrelated-to-bug: 8620223\n"
    },
    {
      "commit": "a68e7b98361692d4120bf99fa5dc18cd93673130",
      "tree": "98a10087c0fc8862b753642e52d0ac8063f09b1d",
      "parents": [
        "5ce9c299a64a1568165fc66adb2cf68d89198a90"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "message": "Guard against mLooper \u003d\u003d NULL.\n\nChange-Id: I01aa0e47b55d0dffe34525edf9f055a5cb4dc70f\nrelated-to-bug: 8620223\n"
    },
    {
      "commit": "2070254f241f52cadb69bc2323f56df72704f1ca",
      "tree": "dd5aead0ce971332761599cc73189b8e1fea96a9",
      "parents": [
        "ecba7488c5cceaacef95836b1b476433451e7761"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:07:55 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:31:55 2013 -0700"
      },
      "message": "Instead of returning an error, return an invalid duration (-1 ms)\n\nif no duration information was available. This prevents us from\nentering ERROR state, effectively rendering the player instance useless.\n\nChange-Id: I602d2661ae8b8633360306c0ea9208fb11e2bf17\nrelated-to-bug: 8596285\n"
    },
    {
      "commit": "d85929f6086e050d7cb33bfe0d29f339ad7279e5",
      "tree": "ba90eb3c58882adc2a7f030892ab6faf6970af7b",
      "parents": [
        "da0dc0af0effe9fbfb3ce3187c8472fca2baf3c6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:07:55 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:31:55 2013 -0700"
      },
      "message": "Instead of returning an error, return an invalid duration (-1 ms)\n\nif no duration information was available. This prevents us from\nentering ERROR state, effectively rendering the player instance useless.\n\nChange-Id: I602d2661ae8b8633360306c0ea9208fb11e2bf17\nrelated-to-bug: 8596285\n"
    },
    {
      "commit": "7069bdf24a9e3393479368e83f9009817869c33c",
      "tree": "2e4698654f2d6d6d9d50fc527ec00f7480c84296",
      "parents": [
        "2f711486c2b35610fb8e114968263e6660cdb683"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 01 14:28:31 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 01 14:28:31 2013 -0700"
      },
      "message": "Fix seek in response to OnPrepared() for HLS content\n\nChange-Id: I0e52352845398a4db074e939487f6f6de94bd523\nrelated-to-bug: 8225122\n"
    },
    {
      "commit": "997594088164cfb33c1cb8c376884346fbf1e7ae",
      "tree": "773cf80cca3c6ce141b453ddef7569d02ecf95db",
      "parents": [
        "31215f2f341bae9d1f6db6368b2b1539e077d571"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 01 14:28:31 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 01 14:28:31 2013 -0700"
      },
      "message": "Fix seek in response to OnPrepared() for HLS content\n\nChange-Id: I0e52352845398a4db074e939487f6f6de94bd523\nrelated-to-bug: 8225122\n"
    },
    {
      "commit": "9dffd24e00a1b2abd5e2dcc2366c0327ec3701b8",
      "tree": "593867dda4cf659baf90444ddd152cba2d68c86c",
      "parents": [
        "9ab909bff49b2eccde1b028901717c193ef723af"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 12 11:01:43 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 12 13:44:58 2013 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit f4edf442741886cdbe071e2d15f6e6247269f7c5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Mar 12 09:09:18 2013 -0700\n\n    Pass additional flags to the sink, use TCP by default in wolfiecast mode.\n\n    Change-Id: I41e11a2375d4199656e45c4f149d8441d0016092\n\ncommit 6302602ed280a38287f507159abfb40a1da38c5a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Mar 12 08:51:58 2013 -0700\n\n    tweaks\n\n    Change-Id: Ie29e422d7258be522f4bb1f6c5afcf74c937e547\n\ncommit a38a860e4979ba563cadbaafa21b084439449d26\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Mar 11 16:57:43 2013 -0700\n\n    Report average lateness all the way from NuPlayerRenderer...\n\n    Change-Id: I2e7700703ae656515e44b9c25610d26c75778111\n\ncommit a7d49b11675ea88be4029dd8451d1649db94571d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Mar 11 14:54:19 2013 -0700\n\n    Make TimeSyncer smarter, enable TunnelRenderer\n\n    Change-Id: I27377a60cd8feb01589da456967fddd34532c20e\n\ncommit 0f214c8ef68179f7b61512c37040939554013151\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Mar 7 15:57:56 2013 -0800\n\n    convert source timestamps to sink timestamps, report lateness.\n\n    Change-Id: I051a60fbbceca2f7b508ae3dac6e01e402bae39e\n\ncommit 04a4f8e16bad09157b5615a5fa45310438955832\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Mar 7 09:00:28 2013 -0800\n\n    Sync time between sink and source.\n\n    Change-Id: Ie8b4d75c957aa48310e7c81d1279761b9f821efe\n\ncommit aebe20e6184e3636a99082f8ece08e708015cb8d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Mar 6 09:03:12 2013 -0800\n\n    play with back pressure\n\n    Change-Id: I51eb69257e6a79e76f5f9c75ff99d8adbd083947\n\nChange-Id: Ifdf57228667fed7fc71c5090a2c3f7cea1037c5c\n"
    },
    {
      "commit": "d5e56231a598b180a1d898bb7dc61b75580e59a4",
      "tree": "7bb3e14a2c8212813d6e33cb3c7a8da2470d58f5",
      "parents": [
        "e6800cea0678dbc0bf697b44c3e4548b0253085c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 12 11:01:43 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 12 13:44:58 2013 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit f4edf442741886cdbe071e2d15f6e6247269f7c5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Mar 12 09:09:18 2013 -0700\n\n    Pass additional flags to the sink, use TCP by default in wolfiecast mode.\n\n    Change-Id: I41e11a2375d4199656e45c4f149d8441d0016092\n\ncommit 6302602ed280a38287f507159abfb40a1da38c5a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Mar 12 08:51:58 2013 -0700\n\n    tweaks\n\n    Change-Id: Ie29e422d7258be522f4bb1f6c5afcf74c937e547\n\ncommit a38a860e4979ba563cadbaafa21b084439449d26\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Mar 11 16:57:43 2013 -0700\n\n    Report average lateness all the way from NuPlayerRenderer...\n\n    Change-Id: I2e7700703ae656515e44b9c25610d26c75778111\n\ncommit a7d49b11675ea88be4029dd8451d1649db94571d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Mar 11 14:54:19 2013 -0700\n\n    Make TimeSyncer smarter, enable TunnelRenderer\n\n    Change-Id: I27377a60cd8feb01589da456967fddd34532c20e\n\ncommit 0f214c8ef68179f7b61512c37040939554013151\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Mar 7 15:57:56 2013 -0800\n\n    convert source timestamps to sink timestamps, report lateness.\n\n    Change-Id: I051a60fbbceca2f7b508ae3dac6e01e402bae39e\n\ncommit 04a4f8e16bad09157b5615a5fa45310438955832\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Mar 7 09:00:28 2013 -0800\n\n    Sync time between sink and source.\n\n    Change-Id: Ie8b4d75c957aa48310e7c81d1279761b9f821efe\n\ncommit aebe20e6184e3636a99082f8ece08e708015cb8d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Mar 6 09:03:12 2013 -0800\n\n    play with back pressure\n\n    Change-Id: I51eb69257e6a79e76f5f9c75ff99d8adbd083947\n\nChange-Id: Ifdf57228667fed7fc71c5090a2c3f7cea1037c5c\n"
    },
    {
      "commit": "b1e7cd156ca3e1747374e0d20cdd1ce467210453",
      "tree": "557f25ff5a0477f0cf0f89d4c21b0291371f09a2",
      "parents": [
        "62ad9071cd61fc56355d3c2d25895382003ea362"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 14 17:11:27 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 15 12:47:35 2013 -0800"
      },
      "message": "Refactoring: Rename SurfaceTextureClient to Surface\n\nChange-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830\n"
    },
    {
      "commit": "1a2952aee048ca7b1765e2bc09ebe9aeddaeafa3",
      "tree": "8e63f996a20f020e0af736eab89d632204c2c631",
      "parents": [
        "05f625c46b992ab66b8d1527a366fe2746b4e3c7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 14 17:11:27 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 15 12:47:35 2013 -0800"
      },
      "message": "Refactoring: Rename SurfaceTextureClient to Surface\n\nChange-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830\n"
    },
    {
      "commit": "46d13e3606b87d71379287672b54b50d0d9aa5cc",
      "tree": "e8109ccba1377865e831847f4ad81542671dd815",
      "parents": [
        "cfc3083927df14bf82403b20a45ae303a01c39f5"
      ],
      "author": {
        "name": "Roger Jönsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Mon Jan 21 17:15:45 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:37:09 2013 -0800"
      },
      "message": "Enable pause/resume for RTSP streaming\n\nWhen a stream is paused, RTSP Pause is also sent to the server.\nOtherwise the buffering might continue until the memory runs out.\nWhen the stream is resumed, RTSP Play will be sent in order to\nresume the buffering.\n\nChange-Id: I5dc1761140827c532451638c3fd3f34271e5b9ab\n"
    },
    {
      "commit": "fba60daf77cc74a13ae3bf4b0e9925dd2ee4470c",
      "tree": "03c491b66972ce99a18d60511843d37ff2a4a80a",
      "parents": [
        "b50e83eca302a12f0fced6e7bab1b8617d63deaa"
      ],
      "author": {
        "name": "Roger Jönsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Mon Jan 21 17:15:45 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:37:09 2013 -0800"
      },
      "message": "Enable pause/resume for RTSP streaming\n\nWhen a stream is paused, RTSP Pause is also sent to the server.\nOtherwise the buffering might continue until the memory runs out.\nWhen the stream is resumed, RTSP Play will be sent in order to\nresume the buffering.\n\nChange-Id: I5dc1761140827c532451638c3fd3f34271e5b9ab\n"
    },
    {
      "commit": "cfc3083927df14bf82403b20a45ae303a01c39f5",
      "tree": "a6803785a07ff3fdbe8c9d84a0596d0040ecdbc6",
      "parents": [
        "0c3f0fa983107a8b5a4d6274179d15333fde8d3c"
      ],
      "author": {
        "name": "Roger Jönsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Mon Jan 21 16:26:41 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:32:55 2013 -0800"
      },
      "message": "RTSP buffering improvements\n\nAdded buffering start and end notifications for RTSP.\nMEDIA_INFO_BUFFERING_START is sent when buffering is started\nand MEDIA_INFO_BUFFERING_END is sent when the buffer has\nfilled up.\n\nThis patch also adds RTSP end of stream handling.\nEOS is signalled when BYE is received OR when\ndetecting end of stream even if no actual EOS is received.\n\nChange-Id: I5cccb6845060ae6afd66d9f735b89da81476cd13\n"
    },
    {
      "commit": "b50e83eca302a12f0fced6e7bab1b8617d63deaa",
      "tree": "58992eeb6e5b4edef4a76e180c4e99be694754d9",
      "parents": [
        "0df36ec3303c2c6bf9b42c07945ac8bd234153f3"
      ],
      "author": {
        "name": "Roger Jönsson",
        "email": "roger1.jonsson@sonymobile.com",
        "time": "Mon Jan 21 16:26:41 2013 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 13:32:55 2013 -0800"
      },
      "message": "RTSP buffering improvements\n\nAdded buffering start and end notifications for RTSP.\nMEDIA_INFO_BUFFERING_START is sent when buffering is started\nand MEDIA_INFO_BUFFERING_END is sent when the buffer has\nfilled up.\n\nThis patch also adds RTSP end of stream handling.\nEOS is signalled when BYE is received OR when\ndetecting end of stream even if no actual EOS is received.\n\nChange-Id: I5cccb6845060ae6afd66d9f735b89da81476cd13\n"
    },
    {
      "commit": "0c3f0fa983107a8b5a4d6274179d15333fde8d3c",
      "tree": "6ede9b14751812fcd5b9101e3f53a1910a3ac7a5",
      "parents": [
        "7f475c34ffc8e35345f2cceee2ef56a50bb5fea6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 10:44:39 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 10:44:39 2013 -0800"
      },
      "message": "HLS now properly publishes its \"seekable\" flags after connection\n\nhas successfully completed and a sufficient amount of data fetched,\nand only then signals that preparation is completed.\n\nChange-Id: I7684a14238b826909f518f2af506966e522dfcfc\n"
    },
    {
      "commit": "0df36ec3303c2c6bf9b42c07945ac8bd234153f3",
      "tree": "558d8e8d18ce64e84114d3b3d53209c0b4e27693",
      "parents": [
        "ec0c597cabf169ca646bcea5faac1bd81ed4484d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 10:44:39 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 06 10:44:39 2013 -0800"
      },
      "message": "HLS now properly publishes its \"seekable\" flags after connection\n\nhas successfully completed and a sufficient amount of data fetched,\nand only then signals that preparation is completed.\n\nChange-Id: I7684a14238b826909f518f2af506966e522dfcfc\n"
    },
    {
      "commit": "7f475c34ffc8e35345f2cceee2ef56a50bb5fea6",
      "tree": "d27f2ad0bb24ae1d97d4cf21fb692c3f2748f8c2",
      "parents": [
        "b81b557d6e89cc2960b74ab343a08b5b44bff1f2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 14:47:13 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 15:27:16 2013 -0800"
      },
      "message": "RTSP now properly publishes its \"seekable\" flags after connection\n\nhas successfully completed and only then signals that preparation is\ncomplete.\n\nChange-Id: I1a60f718e673fe1462c69369c40eafbed6a14326\n"
    },
    {
      "commit": "ec0c597cabf169ca646bcea5faac1bd81ed4484d",
      "tree": "eb922e648c110d7593b145f37cd3ef09027b0f68",
      "parents": [
        "3c7f8b48fcae6f4b41b66c86008170166e43b428"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 14:47:13 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 15:27:16 2013 -0800"
      },
      "message": "RTSP now properly publishes its \"seekable\" flags after connection\n\nhas successfully completed and only then signals that preparation is\ncomplete.\n\nChange-Id: I1a60f718e673fe1462c69369c40eafbed6a14326\n"
    },
    {
      "commit": "57cea553cb19235553463412db5ad04c99835411",
      "tree": "484c824ca8ae2961e3f461f43d7330c1174618cc",
      "parents": [
        "ec29a2bfb5364a5968b77559fd13821b827d173a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 13:59:56 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 14:09:08 2013 -0800"
      },
      "message": "Support for a \"preparation\" state that can take care of lengthy\n\noperations in NuPlayer and its sources. Sources also can publish their\nflags now and the mediaplayer UI will be able to pick up on these.\n\nChange-Id: I4f2b7e5d105dcb4b6c9132cd0e8799efa0c6a14b\n"
    },
    {
      "commit": "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": "81dd60e0340ddcf7f1d5fb80b6c30906fabf201a",
      "tree": "d29f39c38d2452c094468b88a2406f1970b6fc6a",
      "parents": [
        "5ab368af38fefacc4009e3ab1c1bbd00e62b3bcf"
      ],
      "author": {
        "name": "Oscar Rydhé",
        "email": "oscar.rydhe@sonyericsson.com",
        "time": "Mon Feb 20 10:15:48 2012 +0100"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 10:27:34 2013 -0800"
      },
      "message": "Added HTTP support for SDP files.\n\nAdded support for playing SDP files from http links. Previously,\nSDP files only worked when started from rtsp links\n(rtsp://a.b.c/abc.sdp), but they are just as common in http links.\n\npatch provided by \"Oscar Rydhé \u003coscar.rydhe@sonyericsson.com\u003e\"\n\nChange-Id: Ic73af3a9a002009dbe8b04c267a4621bf7fe2f46\n"
    },
    {
      "commit": "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": "5ab368af38fefacc4009e3ab1c1bbd00e62b3bcf",
      "tree": "ca3c894a78eee86acb934a70ace03bad7efae1b8",
      "parents": [
        "c41c932328f35f5eed7e517e9b64db9144f2fcb0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 10:14:26 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 05 10:14:26 2013 -0800"
      },
      "message": "Groundwork to support bidirectional, asynchronous communication\n\nbetween NuPlayer and its sources.\n\nChange-Id: I1989022d806206b926555add3aa5c1fcf37aa78d\n"
    },
    {
      "commit": "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": "484566c410afdfbc4b6bc5aa1732aef37428a5b8",
      "tree": "5ce1fc6a755c32f0b6ff362fe1fc5bf0d9ee2b14",
      "parents": [
        "34d7db5dd43000cac7e8e156d79e9f97ccbb8990"
      ],
      "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": "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": "3057c6925f20d944489a0ccea088d889e8388ebf",
      "tree": "630e286e1177558ffa73472f6b6d67540170da2c",
      "parents": [
        "e9810fae2ca6620337b75a787786cc0ea52adecd",
        "1a447be0cf1abc7564ae2afe7b4d2240c875de54"
      ],
      "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": "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": "e9810fae2ca6620337b75a787786cc0ea52adecd",
      "tree": "f848298646fb0163e6911ad8622adcc12a8eba3f",
      "parents": [
        "07dfb08e935fdfe9f73f452cf27e3e2b052eda4f"
      ],
      "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": "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"
    }
  ],
  "next": "1a447be0cf1abc7564ae2afe7b4d2240c875de54"
}
