)]}'
{
  "log": [
    {
      "commit": "f013dc41d9ac1e295c91594e6f2ebc1455af5f41",
      "tree": "74ced965df287e5753ddfea9b2b705a46c43d242",
      "parents": [
        "e736431c69e2a00468d140d2af97b63e0e5aa83a",
        "641e0c718da1c58e5b89379f60465c4e564ebb73"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Feb 25 22:28:26 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 22:28:26 2016 +0000"
      },
      "message": "Merge \"Miscellaneous RTSP improvements\" into nyc-dev"
    },
    {
      "commit": "5031b2f3ac5223587e48fc8463bec24cb62495ba",
      "tree": "b51a726bbeb65974083b52fdd2679fb51cfe42cb",
      "parents": [
        "fc958a0888d47b5d34847afab3b33d877d9ca007"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 25 11:19:31 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 25 11:19:31 2016 -0800"
      },
      "message": "NuPlayer: allow restartAudio in non-offload mode.\n\nBug: 27349327\nBug: 27059518\nChange-Id: Ia41de9dbe8949ca04f6f3cd11f5b01cea2f53a74\n"
    },
    {
      "commit": "641e0c718da1c58e5b89379f60465c4e564ebb73",
      "tree": "185862167860b7fa4486b0e62c3ac0b98b6c14a8",
      "parents": [
        "c52198dc514cb3f790c3d814b279faa27d07a36b"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Feb 22 11:37:20 2016 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Feb 25 09:24:22 2016 -0800"
      },
      "message": "Miscellaneous RTSP improvements\n\n1. Server side management based on buffer monitoring\n2. Notify prepared after more buffering\n3. Drop stale access units after seek\n\nBug: 27292698\nChange-Id: Ic41686bb3514eb1d4c206bb155d45f34b6350810\n"
    },
    {
      "commit": "bf70feb38dc0361989aa6ef869cdd4f6ce3f7108",
      "tree": "189396ee5661dbf439a7c5d43f773b3e8d2caa67",
      "parents": [
        "56d65dc0b4574b1d29132b25c90c83a8fb203c9e"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 19 15:47:16 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 23 11:36:22 2016 -0800"
      },
      "message": "NuPlayer: switch to non-offload mode when playback rate is not 1.f\n\nBug: 27059518\nChange-Id: Ib53786fe5ba2271bd4c1563c3ee5403617589066\n"
    },
    {
      "commit": "262c39e35bf88e09dab3e0ae9f7df84db64273bb",
      "tree": "f18b82ce3d5b683b4ac838b69c8e540c798fec25",
      "parents": [
        "b89194e2bb82a040b82f0f0011138bcf39917041",
        "3bed45a4923eaf615fdc322da7b0b8faf7475a63"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 18 17:01:09 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 17:01:10 2016 +0000"
      },
      "message": "Merge \"NuPlayer: always send BUFFERING_END to client.\" into nyc-dev"
    },
    {
      "commit": "d2f35de429c67a156299f662b0783fbcead13cb6",
      "tree": "5a593cfdc8fdd6042ef0c83152aca9d841b440da",
      "parents": [
        "f25f8410c01922c58d78ec35da420c3b4fed7e38"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 17 16:48:06 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 17 17:08:07 2016 -0800"
      },
      "message": "NuPlayerRenderer: return correct pending audio duration for virtual audio sink.\n\nBug: 27222912\nChange-Id: Ia900f8ac66fcdad538f847233fe680f6bf47ea2f\n"
    },
    {
      "commit": "3bed45a4923eaf615fdc322da7b0b8faf7475a63",
      "tree": "efd82cd537928d996193df4fa1e85523eef6b9a2",
      "parents": [
        "b0a144d705a021994628d136a170a6d2bd4282e7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 17 11:06:47 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 17 11:06:47 2016 -0800"
      },
      "message": "NuPlayer: always send BUFFERING_END to client.\n\nBug: 25727912\nChange-Id: I8c0d87ae2611769e275ed8f0d82a8928961657e8\n"
    },
    {
      "commit": "528c8403ad2ede53054a706a20c00b710fa08166",
      "tree": "29b1a6c57810d3c7068fd1fa2c2e212caeb50574",
      "parents": [
        "e8c8ed47ca15aa6be83c6feef89e27a832e763e9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 12 12:39:34 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 11 23:49:15 2016 +0000"
      },
      "message": "NuPlayerRenderer: Reduce calls into AudioTrack::getTimestamp\n\nBug: 26513187\nChange-Id: I2e1792fedd81f95272485b0122f1dfe04113f1ac\n"
    },
    {
      "commit": "818382eed20cae448416c4ff78d36874016ab30b",
      "tree": "6e5bad8c2079c75e41a80529eb0b0ffe54576514",
      "parents": [
        "c10899dc623a61f5f48bb00568a3f6a70f2f22b6",
        "351ce871cee5da00340cf448e8d73b9e22cea078"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 11 00:07:25 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 00:07:25 2016 +0000"
      },
      "message": "Merge \"NuPlayer: set mPausedByClient correctly when calling setPlaybackSettings().\" into nyc-dev"
    },
    {
      "commit": "4ad74b2b4507c8b2714b7b7584578d2d43ae2633",
      "tree": "cafd974ec56d970270de49f55ee560aac9a4724a",
      "parents": [
        "3aaa699a46edb4f47d0cd5a11d57eba93493bd90"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 05 17:11:20 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 10 23:08:52 2016 +0000"
      },
      "message": "RTSP: increase mCheckGeneration when mCheckPending is set to false.\n\nThis will ensure there is only one \u0027chek\u0027 message.\nAlso delay notification of seek done till kWhatSeekDone, instead of\nkWhatSeekPaused. This allows back-to-back multiple seeks.\n\nBug: 25727912\nChange-Id: If873bfaf1c37790e520f1f659ab26148b0c8cd1c\n"
    },
    {
      "commit": "351ce871cee5da00340cf448e8d73b9e22cea078",
      "tree": "a2d17dea8bbbd9f5fcf1b6e41be5465b27270158",
      "parents": [
        "3aaa699a46edb4f47d0cd5a11d57eba93493bd90"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 10 13:21:59 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 10 15:01:06 2016 -0800"
      },
      "message": "NuPlayer: set mPausedByClient correctly when calling setPlaybackSettings().\n\nAlso reset mPendingBufferingFlag when seeking.\n\nBug: 25727912\nChange-Id: I1b6ec51b22f981c1701ac7eab572f95e6874c3a0\n"
    },
    {
      "commit": "07af6518b7b7eeb730ded9c5fd6fd6fb3a462bc5",
      "tree": "d0101e4e06e92d5de0419ea333fd359c45f28270",
      "parents": [
        "12b6265f1d4be368957f91104d5210cf604ac4cc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 10 10:45:47 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 10 10:45:47 2016 -0800"
      },
      "message": "NuPlayerRenderer: remove extra quotation mark.\n\nBug: 26400089\nChange-Id: Icbfe373424e03629d6bc7242879618402bbbcb96\n"
    },
    {
      "commit": "12b6265f1d4be368957f91104d5210cf604ac4cc",
      "tree": "5c14a43cd3734e93f7353e1b40b045a1da45cfa5",
      "parents": [
        "00803f7e94052144ecf476268bc717191ee29865"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 09 17:49:31 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 10 17:54:18 2016 +0000"
      },
      "message": "NuPlayerRenderer: use system clock when audio sink is not working.\n\nBug: 26400089\nChange-Id: I8243b95798b54daa3023d1123ef0a8351e7502e2\n"
    },
    {
      "commit": "71c75e002fce579444a1a6126effe883b963091b",
      "tree": "6efaece101cfb94eb0fb6582c0cedf73658e9dbd",
      "parents": [
        "19bd5498a78936436e982ff074cd9d460494c066"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 04 09:40:47 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 05 17:20:09 2016 -0800"
      },
      "message": "NuPlayer: do not send BUFFERING_START to client when paused by client.\n\nBug: 25727912\nChange-Id: I5f82090352a3d6806f1f8fafbdb2a3bf0be48be7\n"
    },
    {
      "commit": "3ba7ed56de35656a1eeb12fff16531085d3f37cb",
      "tree": "a6076c3092f92981110f19f1391c0b84e7d337c6",
      "parents": [
        "36672af51e20268e4649075858943f7545ddd15b",
        "e67ba383dd585d2c253986a39225e0d6d05755f3"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 03 01:43:31 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 03 01:43:31 2016 +0000"
      },
      "message": "Merge \"Revert \"NuPlayer: use kWhatPauseOnBufferingStart instead of kWhatBufferingStart in RTSPSource.\"\""
    },
    {
      "commit": "e67ba383dd585d2c253986a39225e0d6d05755f3",
      "tree": "9d88f2ae7072e8e09e75fcee545332e88d0f3604",
      "parents": [
        "2c9a30a341e50f53039e1b7da96dfa91104fdd62"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 03 01:41:49 2016 +0000"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Feb 03 01:42:56 2016 +0000"
      },
      "message": "Revert \"NuPlayer: use kWhatPauseOnBufferingStart instead of kWhatBufferingStart in RTSPSource.\"\n\nThis reverts commit 2c9a30a341e50f53039e1b7da96dfa91104fdd62.\nRTSPSource::pause() will stop receiving data in RTSPSource. This is different from GenericSource::pause().\n\nChange-Id: I2df2bf350731ce0fb1f278942b23ccc6f4f37fb9\n"
    },
    {
      "commit": "97385561584e96c1c1149cf883e0ad1c75cfbdd0",
      "tree": "5e2de882c337b17d1d06dd5dd323be134d7bb882",
      "parents": [
        "4f2559d3cdeb7187dedca186d5abc65af4bdb031",
        "62cc8d0d9d8019a84e6ef63c3917d3beb99061c6"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jan 22 18:24:13 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 18:24:13 2016 +0000"
      },
      "message": "Merge \"NuPlayerDriver: fix misc. getCurrentPosition issue.\""
    },
    {
      "commit": "62cc8d0d9d8019a84e6ef63c3917d3beb99061c6",
      "tree": "a9531b7b91dc5d9c86a9cf8083a4dd55c9b88f14",
      "parents": [
        "987f953298169027df001409fbd82991d82900bc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 21 13:03:20 2016 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jan 22 17:48:05 2016 +0000"
      },
      "message": "NuPlayerDriver: fix misc. getCurrentPosition issue.\n\nQuery position from nuplayer if player is at EOS as driver may have\nstale position.\n\nUse driver\u0027s getPosition instead of player\u0027s getPosition if player is\npaused by setPlaybackRate. This will preserve sought position.\n\nChange-Id: Ib55f028438fc40359f599969d01b66aef5100c0a\n"
    },
    {
      "commit": "f2e71d265424820caf64dd8e53c03c6a65f80373",
      "tree": "a2d9181fe5821ec512609cff06eb4002c8687edf",
      "parents": [
        "56097a8ecc31ec308a1caa38f92b69f99324eada",
        "2c9a30a341e50f53039e1b7da96dfa91104fdd62"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 21 17:18:14 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 21 17:18:14 2016 +0000"
      },
      "message": "Merge \"NuPlayer: use kWhatPauseOnBufferingStart instead of kWhatBufferingStart in RTSPSource.\""
    },
    {
      "commit": "56097a8ecc31ec308a1caa38f92b69f99324eada",
      "tree": "3df2eb393112b130b4886f5f82a760cdea062a86",
      "parents": [
        "987f953298169027df001409fbd82991d82900bc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 07 16:03:03 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 21 16:58:14 2016 +0000"
      },
      "message": "NuPlayerDecoder: fail gracefully when input data can\u0027t be held in allocated buffer.\n\nBug: 24145279\nChange-Id: I6b99ee2dc63063557f4ee2c5856f7c848e969752\n"
    },
    {
      "commit": "05b7b2d33816a4bf9592ec82639a7bcf06166157",
      "tree": "974641b19e8c93bdc5de71ec0b04b0bbd15102ad",
      "parents": [
        "78c12ed04e8b7e1f417d61e2a61e1070e3fb7bf2",
        "3694d7cf40d1645bf05246cf38595eed606bb650"
      ],
      "author": {
        "name": "Jaesung Chung",
        "email": "jaesung@google.com",
        "time": "Thu Jan 21 03:40:33 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 21 03:40:33 2016 +0000"
      },
      "message": "Merge \"Support for CEA-708 closed caption\""
    },
    {
      "commit": "4def1cb3283df05929dbf81f9ca68803b519437f",
      "tree": "19ac964917f520a5c3a428b731f142b93137c6da",
      "parents": [
        "70d20f98299e5ce8dbdf01ed6123a47fe7bc45b1"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 20 13:13:51 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 20 13:18:28 2016 -0800"
      },
      "message": "GenericSource: reset mPrepareBuffering to initial value when buffering monitor is stopped.\n\nBug: 26676177\nChange-Id: I4dbd86a624bd0c8fb8dd154752e345168e804d6b\n"
    },
    {
      "commit": "2c9a30a341e50f53039e1b7da96dfa91104fdd62",
      "tree": "a13757360b96d7a4085161ee366c30de6b2cd2da",
      "parents": [
        "81becaec18695331e853477e0ba6c51c989d365e"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 19 16:53:31 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 19 16:53:31 2016 -0800"
      },
      "message": "NuPlayer: use kWhatPauseOnBufferingStart instead of kWhatBufferingStart in RTSPSource.\n\nBug: 24295007\nChange-Id: I75026f7c96b40b0d552d849772760367f9859d1b\n"
    },
    {
      "commit": "14532f2383c3849d0db59a607ed0bd802f57155c",
      "tree": "4708ae8fdfead414b9c4c0268faced5e05599327",
      "parents": [
        "3583c435f773ceef3f340d14c06c62579866f2aa"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Dec 29 11:28:15 2015 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jan 19 09:06:12 2016 -0800"
      },
      "message": "MediaPlayer: overhaul buffering monitor scheme.\n\nGenericSource: buffering monitor runs on a separate looper since readBuffer()\ncall can be blocked for long time.\n  When paused, dequeueAccess() returns -EWOULDBLOCK.\n  For audio offload, take into account cached data in downstream components.\nNuPlayerDecoderPassThrough: flush out aggregate buffer when source doesn\u0027t have\ndata available.\n\nBug: 24295007\nChange-Id: I535a438d96ee902c9b4baa7c84ed7e5063a23964\n(cherry picked from commit 32ce83cf93e4eb14c9937e4b850e044f9f7fdf2c)\n"
    },
    {
      "commit": "ce84b2240497cd0923e190ae115e319e4c17d303",
      "tree": "fefc7e1b872badcfa63548ee866ad1f3074b8188",
      "parents": [
        "74a930b2bb7c61c25232c4f06b67abdbeaca8116"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 14 14:39:42 2016 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jan 14 14:39:42 2016 -0800"
      },
      "message": "RTSPSource: check mHTTPService before dereferencing it.\n\nChange-Id: Id92c5ed86742f9c5cb0a67207b26de61523fd009\n"
    },
    {
      "commit": "00541e293c250ea9e31b6ab2dc134802e34fe843",
      "tree": "9250a08be0b9fa9caee2472fa931e98b7eda9844",
      "parents": [
        "44333e51c62643e7581022495a2a1f410dd62e27"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Dec 18 17:04:00 2015 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Dec 28 09:40:57 2015 -0800"
      },
      "message": "NuPlayerRenderer: delay video until audio clock is ready\n\nBug: 26291187\nChange-Id: Ifcfc87033390ed772868976129e233afb099c13b\n"
    },
    {
      "commit": "3694d7cf40d1645bf05246cf38595eed606bb650",
      "tree": "4e0acd93f201adf54119271b3bd539f74deea84c",
      "parents": [
        "cc8bbc3ffed9fdd3f3d92973474c498e51035ccd"
      ],
      "author": {
        "name": "Jaesung Chung",
        "email": "jaesung@google.com",
        "time": "Wed Oct 21 11:41:38 2015 +0900"
      },
      "committer": {
        "name": "Jaesung Chung",
        "email": "jaesung@google.com",
        "time": "Mon Dec 07 18:00:19 2015 +0900"
      },
      "message": "Support for CEA-708 closed caption\n\nBug: 24314667, Bug: 24889604\nChange-Id: Ica8a8405b143921de82ca6075a1f7b1f6f9ff345\n"
    },
    {
      "commit": "728a7aa0819cd583f09a941f26b71886533a244f",
      "tree": "13a3a7bd4227cd0977d4aeb57fc1e2febaee6244",
      "parents": [
        "469826c69810c24f2e90291182c8501e76be31f0",
        "8420073fda0f6f6c68c952e030b0dbc184112e42"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 03 23:24:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 23:24:17 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Allow immediate pause on next track.\""
    },
    {
      "commit": "8420073fda0f6f6c68c952e030b0dbc184112e42",
      "tree": "772ec9a8251eb16a5be9f6df2910003c36d966bd",
      "parents": [
        "6411cb684e5994834c441d94708d245d81b474a5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 03 14:41:06 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 03 14:55:00 2015 -0800"
      },
      "message": "NuPlayerRenderer: Allow immediate pause on next track.\n\nPrior code required audio data to have been decoded first.\n\nBug: 25904185\nChange-Id: I52fa65b2ed53d29ddd534c2bf3070626d54bd633\n"
    },
    {
      "commit": "f4284584d6a12c19906d661e55163c0d90f83286",
      "tree": "e52df89ad84b72924768fa5ea45b9a16d9fe7aab",
      "parents": [
        "5a2ab8f1e6d71df5a6ecfd5c81db37e0ca0c09bf",
        "2a9cf2eeefa590a26c0af51fa226940560e5bef2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 30 19:31:32 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 30 19:31:32 2015 +0000"
      },
      "message": "Merge \"Tuning the number of packets for one read in StreamingSource\" am: 9cd5f8115b am: a4afeea0dc\nam: 2a9cf2eeef\n\n* commit \u00272a9cf2eeefa590a26c0af51fa226940560e5bef2\u0027:\n  Tuning the number of packets for one read in StreamingSource\n"
    },
    {
      "commit": "a4afeea0dccf5d2bf400f53743df196ceee2fcbe",
      "tree": "2202f4b7beb6d36ca0a815a579808b252cb309c3",
      "parents": [
        "19a31b9656ec89ac273ba97277168728f2e027bb",
        "9cd5f8115b9d2414e8ec537ffec3308776c2b587"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 30 19:24:35 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 30 19:24:35 2015 +0000"
      },
      "message": "Merge \"Tuning the number of packets for one read in StreamingSource\"\nam: 9cd5f8115b\n\n* commit \u00279cd5f8115b9d2414e8ec537ffec3308776c2b587\u0027:\n  Tuning the number of packets for one read in StreamingSource\n"
    },
    {
      "commit": "9cd5f8115b9d2414e8ec537ffec3308776c2b587",
      "tree": "cee02579ecd0b286d4ba15e1bd6f4601f8262845",
      "parents": [
        "140359b74d00895d53e89e4f3be542fc66351f34",
        "8cf4ced8d25e9b1b56b69b544339acc1550e4038"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 30 19:20:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 30 19:20:05 2015 +0000"
      },
      "message": "Merge \"Tuning the number of packets for one read in StreamingSource\""
    },
    {
      "commit": "dc123cbae198204e8c6c3d4f4f09a95cbc0e9ec5",
      "tree": "6b13b112383dc58f8f31d754e847e187086c0bb5",
      "parents": [
        "6411cb684e5994834c441d94708d245d81b474a5",
        "caf17eb5d71fb588fd1cc0c040f4d18538170e3d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Nov 26 01:17:13 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 26 01:17:13 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: always display the first video frame without delay.\" am: 80b991393d am: bd060b5932\nam: caf17eb5d7\n\n* commit \u0027caf17eb5d71fb588fd1cc0c040f4d18538170e3d\u0027:\n  NuPlayerRenderer: always display the first video frame without delay.\n"
    },
    {
      "commit": "bd060b5932d4c27cb7e11d5b7273de945a125e7d",
      "tree": "0c8e7e80bb39f020c22d1978029ad4d4c0f05a33",
      "parents": [
        "674649bcb5d3e5fd6e527906c7b166f96d35ec16",
        "80b991393de73161eb0bf8e692c830eb9ab12ca4"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Nov 26 00:06:54 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 26 00:06:54 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: always display the first video frame without delay.\"\nam: 80b991393d\n\n* commit \u002780b991393de73161eb0bf8e692c830eb9ab12ca4\u0027:\n  NuPlayerRenderer: always display the first video frame without delay.\n"
    },
    {
      "commit": "80b991393de73161eb0bf8e692c830eb9ab12ca4",
      "tree": "186d7f4d2aba8147a562e0aaa751d0cf766f9b53",
      "parents": [
        "f5ac18d2fd86b1fe6d2f115d64d95117ed7f96f5",
        "25d696f31bfcbb24459f5d68c2288101bb5f7875"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 25 23:06:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 25 23:06:49 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: always display the first video frame without delay.\""
    },
    {
      "commit": "7897659e2756c0f715b7469421cbbeb4d422eae0",
      "tree": "de5e6a75b9c6c42f6709fe6b811e33481a4e6943",
      "parents": [
        "371ed17f26d789c485f9a082f65e2c80ca651489",
        "873ca50c7d590b4a04efc1e9c6ffec566e7e4e24"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 25 18:29:47 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 25 18:29:47 2015 +0000"
      },
      "message": "Merge \"NuPlayerDecoder: add synchronous call pause() to ensure decoder will not request or send out data.\" am: f5ac18d2fd am: 674649bcb5\nam: 873ca50c7d\n\n* commit \u0027873ca50c7d590b4a04efc1e9c6ffec566e7e4e24\u0027:\n  NuPlayerDecoder: add synchronous call pause() to ensure decoder will not request or send out data.\n"
    },
    {
      "commit": "674649bcb5d3e5fd6e527906c7b166f96d35ec16",
      "tree": "5cb99af91a5b24510ad24b7a2aa2301b982c2619",
      "parents": [
        "310706d108cd086e148bfbca3a1400ddd98de82c",
        "f5ac18d2fd86b1fe6d2f115d64d95117ed7f96f5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 25 18:22:51 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 25 18:22:51 2015 +0000"
      },
      "message": "Merge \"NuPlayerDecoder: add synchronous call pause() to ensure decoder will not request or send out data.\"\nam: f5ac18d2fd\n\n* commit \u0027f5ac18d2fd86b1fe6d2f115d64d95117ed7f96f5\u0027:\n  NuPlayerDecoder: add synchronous call pause() to ensure decoder will not request or send out data.\n"
    },
    {
      "commit": "25d696f31bfcbb24459f5d68c2288101bb5f7875",
      "tree": "476976bc294c4398acbf6ee2b7b30f102fee1b06",
      "parents": [
        "bca41e308fc322e27a839448f5eae3337f66b8b7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Nov 19 10:57:15 2015 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Nov 24 17:15:40 2015 -0800"
      },
      "message": "NuPlayerRenderer: always display the first video frame without delay.\n\nBug: 25357751\nChange-Id: Iffd9af2ddf7626155d98caf086fe209600141585\n"
    },
    {
      "commit": "3bc667014875aba35102941b3997d242c303aa0d",
      "tree": "c3673d936f910a1dad425b96069944918f48f232",
      "parents": [
        "bca41e308fc322e27a839448f5eae3337f66b8b7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Nov 18 15:45:06 2015 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Nov 19 09:34:36 2015 -0800"
      },
      "message": "NuPlayerDecoder: add synchronous call pause() to ensure decoder will not request or send out data.\n\nBug: 25372978\nChange-Id: Id66ab9b9961d5a3b9fb783ae73c27ed1c8054db8\n"
    },
    {
      "commit": "10a121b2a3ea3334e1e3a2722b2a03833fb9a897",
      "tree": "025f61b9ba9b92d7cafb991e33a27a5de8782000",
      "parents": [
        "ebab3587f58316cdb488d44b9c17c35382fc8473"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 04 14:46:44 2015 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 04 14:52:00 2015 -0800"
      },
      "message": "GenericSource: use sp\u003c\u003e instead of regular pointer.\n\nRegular pointers have a tendency to go stale.\n\nBug: 25472775\nChange-Id: I85fc152e11d11d2f29ba621e88ea314f56e7dd60\n"
    },
    {
      "commit": "74e0f3a620bd0cdfb153728e99a17a96ca3db0de",
      "tree": "fc5fbef0a0e456c56b9998de47e22bf3f83e77c8",
      "parents": [
        "9cc6bb627e9683149f3d3f0609a83b8f14be7fde",
        "f71d2618532e73db5c01e3c00595d7d2ab2cff3e"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Nov 03 14:29:53 2015 -0800"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Nov 03 14:29:53 2015 -0800"
      },
      "message": "Merge commit \u0027f71d2618532e73db5c01e3c00595d7d2ab2cff3e\u0027 into HEAD\n"
    },
    {
      "commit": "c24b47c33d9f250972a570a9ff22920f98d3c732",
      "tree": "803d259a648100269553a731b0233cb34f4d803f",
      "parents": [
        "62ac714617c3c994619afdc0666ac3359d8084e7",
        "c5ea4edcd4326eaea78549e3d1ad5e4367e65f06"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Oct 30 16:26:43 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 30 16:26:43 2015 +0000"
      },
      "message": "Merge \"nuplayer: don\\\u0027t resume if player is reseting\"\nam: c5ea4edcd4\n\n* commit \u0027c5ea4edcd4326eaea78549e3d1ad5e4367e65f06\u0027:\n  nuplayer: don\u0027t resume if player is reseting\n"
    },
    {
      "commit": "9a40167c3dc32fccc72abd96f03df6ea5676793b",
      "tree": "389d217a83b3dd6d2bab73f48b3bbc9e6826d2b6",
      "parents": [
        "7350b057ca864f5dc9e53d48e34710a8e81133f8",
        "b2487f03f12dcafdb801fc0007c8df8412397f44"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 28 17:30:40 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 28 17:30:40 2015 +0000"
      },
      "message": "Merge \"Extractor service\""
    },
    {
      "commit": "b2487f03f12dcafdb801fc0007c8df8412397f44",
      "tree": "4fac81f0fed0d22a1ff36e884ce1825561b5226d",
      "parents": [
        "f8e21a06c1b559757f1c6846b1a1abd29874cbeb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 01 13:23:23 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 28 07:43:19 2015 -0700"
      },
      "message": "Extractor service\n\nRun extractors in a separate process. Currently all data is copied through a\nbinder transaction, and WVMExtractor is still run in the mediaserver process.\n\nChange-Id: Ic5dbce87126dd321ad792f4dd540c2ff6b068d13\n"
    },
    {
      "commit": "7350b057ca864f5dc9e53d48e34710a8e81133f8",
      "tree": "7aeac0c5e4ff5c00467839eee3c59e32e56c7cef",
      "parents": [
        "146427dcdad5c3b23d9ab1a5a6416551f1f110af"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Oct 01 15:50:14 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Oct 27 17:16:11 2015 -0700"
      },
      "message": "Don\u0027t re-scan sources if no new ones will appear\n\nThe only scenario we might need to re-scan is when switching between\nbitrate variants in HTTPLiveSources.\n\nBug: 23313819\nChange-Id: I892033c8698f985de74801c39ac5b5417ed19e89\n"
    },
    {
      "commit": "b75de9d4ba6725104342b5376a1047ff1c9b2765",
      "tree": "94245eca48717e67225a5fc4c5ecfc371c794e12",
      "parents": [
        "acd2186aa239efa58b202823083c1b8dbc1c8a16"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Oct 07 16:52:19 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Oct 27 16:47:34 2015 -0700"
      },
      "message": "nuplayer: don\u0027t resume if player is reseting\n\nBug: 24712426\nChange-Id: I58cca0bde708a5c3b073ed77e18b62fe81d6c017\n"
    },
    {
      "commit": "8cf4ced8d25e9b1b56b69b544339acc1550e4038",
      "tree": "14bc46b553b7a1f5d5c125def558e8d0cedd3381",
      "parents": [
        "2d772fd4afd1481a8cea5f59b890d771dbada2f6"
      ],
      "author": {
        "name": "osamu fujita",
        "email": "osamu.x.fujita@sonymobile.com",
        "time": "Tue Oct 06 14:20:02 2015 +0900"
      },
      "committer": {
        "name": "Takahiro Aizawa",
        "email": "takahiro.aizawa@sonymobile.com",
        "time": "Tue Oct 27 18:34:51 2015 +0900"
      },
      "message": "Tuning the number of packets for one read in StreamingSource\n\nRead performance in StreamingSource became worse from LMR1 because\nthe design was changed to asynchronous from synchronous.\nAs a result, the generation of access unit does not make it\nin time for some multiplexed contents, and this causes frame drop.\nThis patch improves read performance by increasing the number of\npackets for one read.\n\nChange-Id: I14955da5a9c5415e35905cc95f1471e0811a4991\n"
    },
    {
      "commit": "64c2d17111b5aebaee2592d9d17c56301bb3e1bc",
      "tree": "2c78bfca6b77a13dd53215e15a69db77cf475b2b",
      "parents": [
        "d373ede5e7737f7fec936f4c37f64805a538d584"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Oct 07 16:52:19 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Oct 26 21:58:17 2015 +0000"
      },
      "message": "nuplayer: don\u0027t resume if player is reseting\n\nBug: 24712426\nChange-Id: I58cca0bde708a5c3b073ed77e18b62fe81d6c017\n"
    },
    {
      "commit": "4a8b99cf5d7754d0cad30ec376d2883efe078feb",
      "tree": "49c83849a1546b60e222d30e96d15eb1d422d263",
      "parents": [
        "d9400a8b62241304566f2184268e3a283bcfa666",
        "02e3ed9de28cc2f38edee12423dc36b3ef348a47"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 26 19:48:18 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 26 19:48:18 2015 +0000"
      },
      "message": "Merge \"Play timed text even after 35.79 minutes\" am: 66bee4de48 am: 7b65e85b6f\nam: 02e3ed9de2\n\n* commit \u002702e3ed9de28cc2f38edee12423dc36b3ef348a47\u0027:\n  Play timed text even after 35.79 minutes\n"
    },
    {
      "commit": "02e3ed9de28cc2f38edee12423dc36b3ef348a47",
      "tree": "fc4247dd8e04f1fb43572d3d1e3716d7f2e5176f",
      "parents": [
        "439f8b6c0224c7847204adc9c2e8e01684e54b34",
        "7b65e85b6f4fb063b5156c39e36c5e115e81d935"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 26 16:00:17 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 26 16:00:17 2015 +0000"
      },
      "message": "Merge \"Play timed text even after 35.79 minutes\" am: 66bee4de48\nam: 7b65e85b6f\n\n* commit \u00277b65e85b6f4fb063b5156c39e36c5e115e81d935\u0027:\n  Play timed text even after 35.79 minutes\n"
    },
    {
      "commit": "7b65e85b6f4fb063b5156c39e36c5e115e81d935",
      "tree": "dd6fa3105d306e6604596582a16009c5ebde98d5",
      "parents": [
        "ba07fec87ea7966f4d34030b391ff9a6fb976fa2",
        "66bee4de485d389d719a7dea03d73baa5380eacf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 26 15:56:44 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 26 15:56:44 2015 +0000"
      },
      "message": "Merge \"Play timed text even after 35.79 minutes\"\nam: 66bee4de48\n\n* commit \u002766bee4de485d389d719a7dea03d73baa5380eacf\u0027:\n  Play timed text even after 35.79 minutes\n"
    },
    {
      "commit": "24d484bab46ef8f9c95197afa064c941eb5fccba",
      "tree": "818f9938e553be5d0034d5f23e51a234556eb9d8",
      "parents": [
        "2d772fd4afd1481a8cea5f59b890d771dbada2f6"
      ],
      "author": {
        "name": "Patrik2 Carlsson",
        "email": "patrik2.carlsson@sonymobile.com",
        "time": "Tue Jan 27 16:49:45 2015 +0100"
      },
      "committer": {
        "name": "Takahiro Aizawa",
        "email": "takahiro.aizawa@sonymobile.com",
        "time": "Mon Oct 26 07:48:57 2015 +0900"
      },
      "message": "Play timed text even after 35.79 minutes\n\nint overflow when converting current position in ms to Us\n\nChange-Id: I12882e52ed1ac92644d601efae5c10ec25ae9e63\n"
    },
    {
      "commit": "2f218cfd1f58624de6a90aae32a35eba78e8097b",
      "tree": "0585dc60b06ebd107610a85082412177f6cc569e",
      "parents": [
        "64c67fad3c9ed5e23f3e5932f49277fdc8802286",
        "5357aa663ed4467e830925a942021064374c0616"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 22 20:11:10 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 20:11:10 2015 +0000"
      },
      "message": "Merge \"GenericSource: reset mDecryptHandle when mDataSource is cleared.\" into mnc-dr-dev am: f8dc643316 am: 87494c6a68\nam: 5357aa663e\n\n* commit \u00275357aa663ed4467e830925a942021064374c0616\u0027:\n  GenericSource: reset mDecryptHandle when mDataSource is cleared.\n"
    },
    {
      "commit": "cdc9cf656a8e43875234cb021fffeb4792d7c74e",
      "tree": "bad42e7b44697a72ab67eb72e730d2e7556825d9",
      "parents": [
        "c0d8c35a2d3873ef1d7c7e5c5eaa51f41c1c3a17"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 22 11:35:04 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 22 11:35:04 2015 -0700"
      },
      "message": "GenericSource: reset mDecryptHandle when mDataSource is cleared.\n\nBug: 25070434\nChange-Id: Ib0eb6a419683a0e686a4f63b82e9300cb1f69484\n"
    },
    {
      "commit": "d855a738735a3df8863b486f5d3b5e404cef15c1",
      "tree": "cd1434f14e891becd3332fdf29fb499ba060dec3",
      "parents": [
        "c4ac8173f911aeac8d5006b19ba48fb51a865115"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 13:31:15 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 13:31:15 2015 -0700"
      },
      "message": "NuPlayerRenderer: fix merge error.\n\nChange-Id: I9cadabd4b5699a607fd5b22f8bd50f9203542b46\n"
    },
    {
      "commit": "c4ac8173f911aeac8d5006b19ba48fb51a865115",
      "tree": "3c1945093ad340ac2d60d4f9606ed108195fca7a",
      "parents": [
        "4ecbea3ae1fcefb082dc419cb663909536138ddb"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 10:35:48 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 18:48:31 2015 +0000"
      },
      "message": "AudioSink: move getPlayedOutAudioDurationUs() from NuPlayerRenderer to AudioSink.\n\nChange-Id: Id22e10dc5f1cd7ade0e043ea56ed77497c2e32af\n"
    },
    {
      "commit": "4ecbea3ae1fcefb082dc419cb663909536138ddb",
      "tree": "07256849cc0586e8f6d3b77cac86b2b562dabe42",
      "parents": [
        "422bf879ed138202f7731d5f279c64af5af7da42"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 20 18:09:57 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 18:47:35 2015 +0000"
      },
      "message": "MediaClock: prevent media time from going backwards.\n\nMedia Clock is started only when AudioSink has rendered some frames.\n\nBug: 25074321\nChange-Id: Ic09fc666eed019e24f5b6a4b8929021eab87ca41\n"
    },
    {
      "commit": "422bf879ed138202f7731d5f279c64af5af7da42",
      "tree": "4289326e84e8422c44e53178670e48ccccefacf5",
      "parents": [
        "a55232a81063031c14eea514daa24f5e2a55ed32",
        "558f5c28c9a1e70dd9ef7ee2fbd33ef407a53de8"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 17:10:53 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 21 17:10:53 2015 +0000"
      },
      "message": "Merge \"GenericSource: reset mDrmManagerClient when mDataSource is cleared.\" into mnc-dr-dev am: 7bfd9afefa am: 023815588c\nam: 558f5c28c9\n\n* commit \u0027558f5c28c9a1e70dd9ef7ee2fbd33ef407a53de8\u0027:\n  GenericSource: reset mDrmManagerClient when mDataSource is cleared.\n"
    },
    {
      "commit": "12a841346158e6edad01e3601014058cfc0ca01d",
      "tree": "22b15c699e1d009311744bba668dec908c53602e",
      "parents": [
        "dfaded0e5f61f22d11dc447ac2f505f276490123"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 20 16:09:21 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 20 16:36:02 2015 -0700"
      },
      "message": "Nuplayer: Fix playback for video only streams\n\nBug: 24146140\nChange-Id: I58c72c74cfcffa66ea8dc5804bcfc5ba884cbab9\n"
    },
    {
      "commit": "b41fd0d4929f0a89811bafcc4fd944b128f00ce2",
      "tree": "3c49ad453a8d8c6aa6bef90f0d313af51d01289f",
      "parents": [
        "ceb10ea795d92d889201cd40f5ac6290edf4ded7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 19 16:14:14 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 19 16:14:14 2015 -0700"
      },
      "message": "GenericSource: reset mDrmManagerClient when mDataSource is cleared.\n\nBug: 25070434\nChange-Id: Iade3472c496ac42456e42db35e402f7b66416f5b\n"
    },
    {
      "commit": "216f0177cbfa0d8e911d64fc17ccbb5100ad87b4",
      "tree": "e1de3589261da0456a351592a496af5e199e3843",
      "parents": [
        "ce805c2a0c447dcdd4e649db7415020dbec1100b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 18:40:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 00:26:57 2015 +0000"
      },
      "message": "NuPlayerDecoder: report error in case of audio sink open error.\n\nBug: 21093153.\nChange-Id: I77e03a620b43967991dcee9d6ca01f67c8b7a02e\n(cherry picked from commit 15ce09dddf830d6a6ca097c5ec0a7ec7c35b6b3a)\n"
    },
    {
      "commit": "a5b4642220b810d8f044171c7c05aed0597a1812",
      "tree": "3e4c6f9e508e33cb102998dcb3efff6afb0fa926",
      "parents": [
        "95c3a43ae474f327289670c8fc61a0ec003810af"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 03 15:13:01 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 13 16:03:25 2015 -0700"
      },
      "message": "NuPlayerRenderer: do not send rendering started message when paused\n\nDelay until resume.\n\nBug: 23669269\nChange-Id: I0a805812d80b1aad561425442bca0fc05a05752f\n"
    },
    {
      "commit": "95c3a43ae474f327289670c8fc61a0ec003810af",
      "tree": "ec0798568d9bcb2feb5f56e000f0c885759b8cbe",
      "parents": [
        "106ceacb404fc580984f882a0c17d61aed3aaf7b",
        "b345ddc3c728359166375af6f19367f547bbd613"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 13 22:00:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 22:00:56 2015 +0000"
      },
      "message": "Merge \"Don\u0027t send OnCompletion events when looping\" into mnc-dr-dev"
    },
    {
      "commit": "106ceacb404fc580984f882a0c17d61aed3aaf7b",
      "tree": "b0d7720ea4360b90100b8c113fca5a1d7a05bf43",
      "parents": [
        "780b766d823040e2d015529e5529c83a008442cc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 08 13:58:33 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:47:31 2015 +0000"
      },
      "message": "NuPlayer: reset mAudioEOS and mVideoEOS when renderer is flushed.\n\nBug: 24749881\nChange-Id: I0d3a757262446ac702dfebd464d5e59f1a98eba8\n(cherry picked from commit 3261f0db54e31e652af9bd3b76a8e85174f5ee87)\n"
    },
    {
      "commit": "780b766d823040e2d015529e5529c83a008442cc",
      "tree": "6a804f039d2829d2a1762366d65bbacfbe2f2d37",
      "parents": [
        "b3c483098e1955202ea08f41d468eb78635e86e0",
        "842396584c80d352c9aa7ea249399102155df49b"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:33:29 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 21:33:29 2015 +0000"
      },
      "message": "Merge \"NuPlayerDriver: acquire mLock when needed.\" into mnc-dr-dev"
    },
    {
      "commit": "3f6fe8512006905f584e6a9998e1707350c7a1e5",
      "tree": "2547cd001cb14dc4d210ab23366bec5b1c30ce89",
      "parents": [
        "756d465998023c1cd86505ae9c114432d437e7ca",
        "4e1095c67f144ac8b90170afae035fea57454d9d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:29:10 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 13 21:29:10 2015 +0000"
      },
      "message": "am 4e1095c6: am 1a825df7: Merge \"NuPlayerRenderer: always update MediaClock with max media duration.\" into cw-e-dev\n\n* commit \u00274e1095c67f144ac8b90170afae035fea57454d9d\u0027:\n  NuPlayerRenderer: always update MediaClock with max media duration.\n"
    },
    {
      "commit": "842396584c80d352c9aa7ea249399102155df49b",
      "tree": "1cfafa590ef0cb2a1af420608bd7fc6c3bc8c9f9",
      "parents": [
        "e5200ea76c5d180b53087ae7825326ec61cc4687"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 06 10:32:32 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:28:58 2015 +0000"
      },
      "message": "NuPlayerDriver: acquire mLock when needed.\n\nBug: 24338126\nChange-Id: Ic55d1a551c18255423423079b6c2bf045dea6e44\n(cherry picked from commit f3631d2921ee0738f87427848e38873370ef9ec0)\n"
    },
    {
      "commit": "4e1095c67f144ac8b90170afae035fea57454d9d",
      "tree": "24559ec4a88508a1501e34cb838c2b00e8f94976",
      "parents": [
        "ef67b6eb329c32da7a687c2eb171d58dfd0e96cc",
        "1a825df7d657ff70f356965140340e488e121033"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:25:31 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 13 21:25:31 2015 +0000"
      },
      "message": "am 1a825df7: Merge \"NuPlayerRenderer: always update MediaClock with max media duration.\" into cw-e-dev\n\n* commit \u00271a825df7d657ff70f356965140340e488e121033\u0027:\n  NuPlayerRenderer: always update MediaClock with max media duration.\n"
    },
    {
      "commit": "492ccd6f03f83a72dcde6aa1674cc22fd45fc06e",
      "tree": "4945f7454ac413220b1b0a630831af6761e84dd9",
      "parents": [
        "c4c68f63192ae7af09a6158b2e72ca7a1a7f4364"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 10:58:07 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:19:11 2015 +0000"
      },
      "message": "NuPlayerRenderer: always update MediaClock with max media duration.\n\nBug: 24345295\nChange-Id: I868c9c44ea22de98a083432262e485d0f134203f\n(cherry picked from commit d005c5ddb4842369979df7b76f1d0f5f1380fcd9)\n"
    },
    {
      "commit": "b345ddc3c728359166375af6f19367f547bbd613",
      "tree": "c613b70d29a9db29c294cb03bbf3009e7f440fd1",
      "parents": [
        "d805214cec5219eef42346cc136effe89292ac69"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 08 10:00:34 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 13 12:38:13 2015 -0700"
      },
      "message": "Don\u0027t send OnCompletion events when looping\n\nAwesomePlayer never did, and neither should NuPlayer.\n\nBug: 18656047\nChange-Id: Ia9abe42cfe6ea643633cec859e9da770092569bb\n"
    },
    {
      "commit": "d005c5ddb4842369979df7b76f1d0f5f1380fcd9",
      "tree": "3c0098f403ad3897eb1579df9614e9910513dd1d",
      "parents": [
        "87b93c0cec767640b6e4dcca1ba1dc2bfeb91df5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 10:58:07 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 10:58:07 2015 -0700"
      },
      "message": "NuPlayerRenderer: always update MediaClock with max media duration.\n\nBug: 24345295\nChange-Id: I868c9c44ea22de98a083432262e485d0f134203f\n"
    },
    {
      "commit": "3809d9ee895ecd3366fa6c4c532c0ac5930d2a6f",
      "tree": "d3ba0bf00b3f39e4b4c437631d1357c3f72ede8f",
      "parents": [
        "3f916dd30e933b2d7da1210c8d4dcaa17373302e",
        "a8d731c34e9c414d8ed3517985dfda405ba7e3c1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 08 22:25:28 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 08 22:25:28 2015 +0000"
      },
      "message": "am a8d731c3: am 185c1347: am 69f26226: Merge \"Don\\\u0027t send OnCompletion events when looping\"\n\n* commit \u0027a8d731c34e9c414d8ed3517985dfda405ba7e3c1\u0027:\n  Don\u0027t send OnCompletion events when looping\n"
    },
    {
      "commit": "185c134768b418dbc6c19c9a0ee75f6dc2a95bb4",
      "tree": "b7eb52442871f03178bc4fae27ed7e179f86fd0e",
      "parents": [
        "f7ec627f451abbd17ee0c2cb57e07700cf671f2f",
        "69f262267cede8b34022deae67336f705bebfcf2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 08 22:08:16 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 08 22:08:16 2015 +0000"
      },
      "message": "am 69f26226: Merge \"Don\\\u0027t send OnCompletion events when looping\"\n\n* commit \u002769f262267cede8b34022deae67336f705bebfcf2\u0027:\n  Don\u0027t send OnCompletion events when looping\n"
    },
    {
      "commit": "3261f0db54e31e652af9bd3b76a8e85174f5ee87",
      "tree": "4c6c0938ccf6c0752cff4322b333118bf7b30d79",
      "parents": [
        "d008275796ac4cccf85fefce53cef733a49bc1fa"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 08 13:58:33 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 08 14:01:10 2015 -0700"
      },
      "message": "NuPlayer: reset mAudioEOS and mVideoEOS when renderer is flushed.\n\nBug: 24749881\nChange-Id: I0d3a757262446ac702dfebd464d5e59f1a98eba8\n"
    },
    {
      "commit": "0e4bd4db6072472de7b7fca7c91f8ac854b2d24c",
      "tree": "7bf0f4fd9bac69bf0ccee553e68fe6f8a4097e29",
      "parents": [
        "1d00430722b24499373c40c6521be4eb41916f0e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 08 10:00:34 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 08 10:00:34 2015 -0700"
      },
      "message": "Don\u0027t send OnCompletion events when looping\n\nAwesomePlayer never did, and neither should NuPlayer.\n\nBug: 18656047\nChange-Id: Ia9abe42cfe6ea643633cec859e9da770092569bb\n"
    },
    {
      "commit": "f3631d2921ee0738f87427848e38873370ef9ec0",
      "tree": "d65e7599486f1cabf75e7c6eba78c1af148c74a7",
      "parents": [
        "392e03112d9aaa13c268b079903f7d959a6ad295"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 06 10:32:32 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 06 10:32:32 2015 -0700"
      },
      "message": "NuPlayerDriver: acquire mLock when needed.\n\nBug: 24338126\nChange-Id: Ic55d1a551c18255423423079b6c2bf045dea6e44\n"
    },
    {
      "commit": "82b34505323c095c800f6620a09fd58a17016699",
      "tree": "0de30b915445825291098e07eb3ba44dcd36c4c0",
      "parents": [
        "6d0473ee9faf6a6e245e83088db91cd993e8facb",
        "3f5ff68327b1df21196f18a020aec474a0dd95fe"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 15 17:35:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 17:35:22 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Do not drain audio during teardown\" into mnc-dr-dev"
    },
    {
      "commit": "9436e48eed5e9be6b98ec6eb7df43845fc781a44",
      "tree": "db233b73aa35035e2a3d7b6f148aa0ecd6691693",
      "parents": [
        "c367ca1762278277fb7a7d1156ce6e193ab524a3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 15 10:21:53 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 15 10:22:02 2015 -0700"
      },
      "message": "Fix the fix\n\nAMessage::find* returns a bool, not a status_t\n\nChange-Id: I89a56181f088881de215e8e79843637eb1b7e8ff\n"
    },
    {
      "commit": "c367ca1762278277fb7a7d1156ce6e193ab524a3",
      "tree": "d9e398737ccaaa872cc1877a9a854ccc38a69d59",
      "parents": [
        "66ffe1e6b9ee814b5dd07a21e65841ce9e47fc4d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 15 09:51:59 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 15 09:52:48 2015 -0700"
      },
      "message": "Fix a few potential crashes\n\nChange-Id: Ib7bdfc1d5fff928570e4fec3f3d4e175f9656dd3\n"
    },
    {
      "commit": "5a965bb113c6c57dd381ea4d44272ad2789f6428",
      "tree": "ac748d344c3512fad9ebfef0eebbef0d67dd4858",
      "parents": [
        "75703a40677a46ee7754d059c0bac5a1383ab865",
        "58d315cae745aae2c87eb3e7cac2da5e25a57d4c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 15 04:08:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 04:08:14 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Do not drain audio during teardown\""
    },
    {
      "commit": "58d315cae745aae2c87eb3e7cac2da5e25a57d4c",
      "tree": "2eadd2314cde3a647d9888b10af15c570f5f2f81",
      "parents": [
        "15609188082d0707ce369884ae8bf80dbc84bbf7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 18:44:56 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 14 23:06:14 2015 +0000"
      },
      "message": "NuPlayerRenderer: Do not drain audio during teardown\n\nBug: 23748678\nChange-Id: I8b65786f25f4524e5e2e9476ecc2a4f4ab3aea9e\n"
    },
    {
      "commit": "b12ea0bbda453769584efcea69054b41d9b4c4c7",
      "tree": "9e361ebb3dfa819cba483625729fa3a878d3bb8d",
      "parents": [
        "69c24d3c6e42472f3e4e155559be100dd6f7121a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 03 15:13:01 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 14 15:33:30 2015 -0700"
      },
      "message": "NuPlayerRenderer: do not send rendering started message when paused\n\nDelay until resume.\n\nBug: 23669269\nChange-Id: I0a805812d80b1aad561425442bca0fc05a05752f\n"
    },
    {
      "commit": "f5eb7c6fa2f6acb0fb19df9809d409f21e04ca4c",
      "tree": "7ee31d59d90d4262aa9347cbb7f0d6ed5a8e6404",
      "parents": [
        "2cea090cc76ad85938ac951a9126112684c5763d",
        "7d05308b16a688436331de2e94d89e46d05d8d1d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 14 15:16:38 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 15:16:38 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Do not deliver audio too soon after stop\" into mnc-dr-dev"
    },
    {
      "commit": "3f5ff68327b1df21196f18a020aec474a0dd95fe",
      "tree": "e649b1493c7f8912cec6b1a7e51e8645b2c17955",
      "parents": [
        "0f05031545e43c8fe49a9dda0cfd9dce202d1ef3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 18:44:56 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 18:48:48 2015 -0700"
      },
      "message": "NuPlayerRenderer: Do not drain audio during teardown\n\nBug: 23748678\nChange-Id: I8b65786f25f4524e5e2e9476ecc2a4f4ab3aea9e\n"
    },
    {
      "commit": "b06a77e2968ec5cf5d116f7cd633afc1fe065ae6",
      "tree": "5c01d3c2325a479697dff8d663c1e89c50630b85",
      "parents": [
        "f0d48b59370a17e1a6c25c45e5ffd2bc26890c2e",
        "55e2f4ca5bb23ce32fbdd627b0f648c27106b98e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 09 18:08:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 18:08:19 2015 +0000"
      },
      "message": "Merge \"Make NuPlayer send global timed text info too\""
    },
    {
      "commit": "27e0350ae57184d5e300f96c8338379f5d3d0fbc",
      "tree": "b0e24c579775fb163924881dfe3ea2e89b8cb017",
      "parents": [
        "e4be7999d8cc689260ee54514cee0da67d9cf7e3",
        "b946648cc63a4d328318b56215214ead575bc54a"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Sep 09 16:11:30 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 16:11:30 2015 +0000"
      },
      "message": "am b946648c: Protect data source access with mutex during disconnect\n\n* commit \u0027b946648cc63a4d328318b56215214ead575bc54a\u0027:\n  Protect data source access with mutex during disconnect\n"
    },
    {
      "commit": "b946648cc63a4d328318b56215214ead575bc54a",
      "tree": "3461186a8b9900f419df126c4b29eed5f1dfad22",
      "parents": [
        "c336136d8a86a8a95047949955a9bb749af247ab"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Sep 02 14:02:47 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Sep 08 11:59:30 2015 -0700"
      },
      "message": "Protect data source access with mutex during disconnect\n\nBug: 23658148\nChange-Id: Ic37cac7b5d166143e0b77e9919b0aaef486e4fdd\n"
    },
    {
      "commit": "55e2f4ca5bb23ce32fbdd627b0f648c27106b98e",
      "tree": "d728bbfa7e7a5dd2099dddf3359416463e3ca46f",
      "parents": [
        "cc75adb4bd6685e64c73772eb9ab3c7c242ac381"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 04 15:57:15 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 04 16:01:15 2015 -0700"
      },
      "message": "Make NuPlayer send global timed text info too\n\nFor feature parity with AwesomePlayer. Also add a small hack to\nAwesomePlayer to make timed text track selection work again, so\nthe timed text CTS test can run with both AwesomePlayer and NuPlayer\n\nChange-Id: I1be451c4b3191cae65bc46b3b721a1924b4fadc8\n"
    },
    {
      "commit": "b669b18d7fee8f7ba1ff64681b4869ac648f0d8f",
      "tree": "6d38618d1fa95d3c1a619257b7c5764f87ce9a1a",
      "parents": [
        "0386c91b8a910a134e5898ffa924c1b6c7560b13",
        "ebc2712d5e8a66f8d6652e7cc7fb14cdbec7f235"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Sep 04 20:39:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 20:39:42 2015 +0000"
      },
      "message": "Merge \"Protect data source access with mutex during disconnect\""
    },
    {
      "commit": "0386c91b8a910a134e5898ffa924c1b6c7560b13",
      "tree": "bed89ce925ca557263768786489c4fa3d5696034",
      "parents": [
        "a44ad9cefb0e2ff4091c8f58368c8b94779212aa"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 28 10:35:35 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Sep 04 17:53:19 2015 +0000"
      },
      "message": "MPEG4Extractor: ensure kKeyTrackID exists before creating an MPEG4Source as track.\n\nGenericSource: return error when no track exists.\n\nSampleIterator: make sure mSamplesPerChunk is not zero before using it as divisor.\n\nBug: 21657957\nBug: 23705695\nBug: 22802344\nChange-Id: I7664992ade90b935d3f255dcd43ecc2898f30b04\n"
    },
    {
      "commit": "ebc2712d5e8a66f8d6652e7cc7fb14cdbec7f235",
      "tree": "2b3d161f137769c792ec6e879759ddbdee1ea127",
      "parents": [
        "3b50fc903b791d4e729750b5461b8dd1d2b74071"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Sep 02 14:02:47 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Sep 03 16:47:23 2015 -0700"
      },
      "message": "Protect data source access with mutex during disconnect\n\nBug: 23658148\nChange-Id: Ic37cac7b5d166143e0b77e9919b0aaef486e4fdd\n"
    },
    {
      "commit": "360df70a479a4992ea64c0f72dd464c8767620f8",
      "tree": "20c95f2f6783fd6db7155b1ee0c2f124fda533c8",
      "parents": [
        "9e61ea34e84d4f8be64972073304f183d9da824e",
        "4b0d70df1f3021c10ae640cb0df7497a19f4f338"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 03 17:37:20 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 03 17:37:20 2015 +0000"
      },
      "message": "am 4b0d70df: am 084b0de5: Merge \"NuPlayerRenderer: avoid divison by zero when sample rate is 0.\" into mnc-dr-dev\n\n* commit \u00274b0d70df1f3021c10ae640cb0df7497a19f4f338\u0027:\n  NuPlayerRenderer: avoid divison by zero when sample rate is 0.\n"
    },
    {
      "commit": "1947550866d9edbb2d5aed8394a520803ca8ec43",
      "tree": "864dad8f278a4190257df052d5ae0a83577d3620",
      "parents": [
        "a968636510ef95246473062c60bfe91eccef5109",
        "1e9f29799a593f829e476ee3fb09956440dfd8a0"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Sep 03 17:36:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 03 17:36:24 2015 +0000"
      },
      "message": "am 1e9f2979: am cfb252cd: Merge \"nuplayer: let non-offload AudioSink to handle the reconnect when there\\\u0027s video.\" into mnc-dr-dev\n\n* commit \u00271e9f29799a593f829e476ee3fb09956440dfd8a0\u0027:\n  nuplayer: let non-offload AudioSink to handle the reconnect when there\u0027s video.\n"
    },
    {
      "commit": "4d7ac854c5a45d0e3af3d0af78b5a8c9807cbec6",
      "tree": "e678a66745d69e443bd3396bdfe9cd0fb45e02a3",
      "parents": [
        "cfb252cdb748429789f918c4268fcca1331f6cec"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Aug 31 18:33:14 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 03 01:11:40 2015 +0000"
      },
      "message": "NuPlayerRenderer: avoid divison by zero when sample rate is 0.\n\nAlso close AudioSink when failing to set playback rate.\n\nBug: 23624664\nChange-Id: I5bf8bcca4a21c26fb52821db597d61f7f1273d5c\n"
    },
    {
      "commit": "7665f5886093e1aee07a5266b8c384e5d1186f34",
      "tree": "a21f3b139d6a802e6ad660d07994e5a97c84c364",
      "parents": [
        "5dc3d9928f85580a2351925b5f11ff0189524c39"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Sep 02 10:15:30 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Sep 02 11:01:56 2015 -0700"
      },
      "message": "nuplayer: let non-offload AudioSink to handle the reconnect when there\u0027s video.\n\nBug: 23707144\nChange-Id: Ie0e2db8dc91a78f82fb935d165aa11abe73697a3\n"
    },
    {
      "commit": "7d05308b16a688436331de2e94d89e46d05d8d1d",
      "tree": "839f104eb7095c751759e6ab692774db32079d47",
      "parents": [
        "5dc3d9928f85580a2351925b5f11ff0189524c39"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 27 16:18:59 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 01 22:18:31 2015 +0000"
      },
      "message": "NuPlayerRenderer: Do not deliver audio too soon after stop\n\nFor non-offloaded audio, do not deliver audio data too soon after stop\nwhen in paused mode.  Otherwise the audio MixerThread will keep the\ntrack playing, instead of inactivating the track.\n\nBug: 23167401\nChange-Id: If376148c742fde2d20dc5d23bf0b894fe378e71a\n(cherry picked from commit b03dcb34cd44d77e5fe1559e72323e03c59931db)\n"
    },
    {
      "commit": "b7b23d3cf474e4a34e3609cbe96337cdb71d4cf0",
      "tree": "594dc37bdfeb34d9de75472178d84f4f3d999dc8",
      "parents": [
        "e3318f9492871e0a06e8a9d518239170c83a0369",
        "b03dcb34cd44d77e5fe1559e72323e03c59931db"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 01 18:28:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 01 18:28:21 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Do not deliver audio too soon after stop\""
    },
    {
      "commit": "7c8d0e0a896eb736ca4cec7fb796704a3c14ab66",
      "tree": "4f35a3589d95c68c92f7db71537876336537275b",
      "parents": [
        "03753ecd014ca07846e43f547570be1244af6d34"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Aug 27 17:40:21 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 28 22:19:03 2015 +0000"
      },
      "message": "NuPlayerRenderer: discard delayed audio EOS notification when renderer being flushed.\n\nBug: 23226641\nChange-Id: I21fc7b8fd66ceefe70b110987e472f035198d1ae\n"
    },
    {
      "commit": "b03dcb34cd44d77e5fe1559e72323e03c59931db",
      "tree": "9cd10843eadc6cb0aa2f84adfeddac4f67c7a466",
      "parents": [
        "03753ecd014ca07846e43f547570be1244af6d34"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 27 16:18:59 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 28 21:24:36 2015 +0000"
      },
      "message": "NuPlayerRenderer: Do not deliver audio too soon after stop\n\nFor non-offloaded audio, do not deliver audio data too soon after stop\nwhen in paused mode.  Otherwise the audio MixerThread will keep the\ntrack playing, instead of inactivating the track.\n\nBug: 23167401\nChange-Id: If376148c742fde2d20dc5d23bf0b894fe378e71a\n"
    },
    {
      "commit": "03753ecd014ca07846e43f547570be1244af6d34",
      "tree": "ab99a2c9889607847ee5211836e5a184d904ebf6",
      "parents": [
        "ad4f583e9e12d4d6cd6a6a4680dd4a328bc94fa9",
        "a3610be12d03da21dcb5e6ed36b98db9d0e4d692"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 28 16:19:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 28 16:19:24 2015 +0000"
      },
      "message": "am a3610be1: am 08723d86: am 5d76e54d: Merge \"NuPlayer: do not create audio decoder if the player is still in shutdown process.\" into mnc-dev\n\n* commit \u0027a3610be12d03da21dcb5e6ed36b98db9d0e4d692\u0027:\n  NuPlayer: do not create audio decoder if the player is still in shutdown process.\n"
    }
  ],
  "next": "08723d86e9921a3eacca77c79c50839d40ee4f33"
}
