)]}'
{
  "log": [
    {
      "commit": "a6560120f96685d7929d535319198485d1d5ccdf",
      "tree": "0253af44cdc42fc828e84953531f36807ebc4f91",
      "parents": [
        "98e099aca2089decdf3486ae216c89766cc252f2",
        "f8197a6a9d9363cb52bb8a2c15c0e5a52064355e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 03 15:39:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 03 15:39:53 2013 +0000"
      },
      "message": "Merge \"Remove timing jitter during startup of audio\" into jb-mr2-dev"
    },
    {
      "commit": "04a840d9a0eea7d0816b6b665aa150649c46974f",
      "tree": "cf15775553ea38416cf470ba42d2a59f31e0da28",
      "parents": [
        "e0b121bd312dc4c238cca5d9b48192c1b4cd53c1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 29 13:17:50 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 02 14:23:55 2013 -0700"
      },
      "message": "A reference to the psi section data could become invalid if more\n\nsections were added to the KeyedVector.\n\nChange-Id: I095b5452ccfad89d69fc502fb21ce39495e201c3\nrelated-to-bug: 8754565\n"
    },
    {
      "commit": "88346647a41a7bdcc1d3640893adc48d76f5b6c0",
      "tree": "a05a3f1f10ba3397d994406143271d41576e4201",
      "parents": [
        "25b089697febaac4f699bb7ae68ad3839c4df5ab",
        "537d31a995011d28e9d9e88cf67d42f0be3d2f6c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 02 21:17:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 02 21:17:20 2013 +0000"
      },
      "message": "Merge \"The software FLAC encoder now properly signals an error if client\" into jb-mr2-dev"
    },
    {
      "commit": "25b089697febaac4f699bb7ae68ad3839c4df5ab",
      "tree": "47913338204aa981efe479463c91ba4a9e03e0ce",
      "parents": [
        "093a1f3a001a5fb3bac011abc2aa376f621c1bfe",
        "9f447e90991315c5a09ba6dfa2ef249922dbf781"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 02 21:16:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 02 21:16:23 2013 +0000"
      },
      "message": "Merge \"Don\u0027t even try to verify the native resolution validity a\" into jb-mr2-dev"
    },
    {
      "commit": "093a1f3a001a5fb3bac011abc2aa376f621c1bfe",
      "tree": "2eea734153023b4949d3a7c1f5604a7aebd72dbb",
      "parents": [
        "688492164e7d92618a1409b567f884bcbd9a5d02",
        "2edb6a6aee4f0c8c518397393015a48d1fcce5d2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 02 21:16:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 02 21:16:09 2013 +0000"
      },
      "message": "Merge \"Fix miracast source code to ignore the encoder output format change\" into jb-mr2-dev"
    },
    {
      "commit": "688492164e7d92618a1409b567f884bcbd9a5d02",
      "tree": "d266b96427561c4b87afd5e7a3d060faa86f30c1",
      "parents": [
        "b28c9db525c47b55c08dced8cd50e1c792c45d4c",
        "5875516ea11f77438f2ed23334fc490a706edd56"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 01 23:53:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 01 23:53:44 2013 +0000"
      },
      "message": "Merge \"Fix reverb at 48kHz\" into jb-mr2-dev"
    },
    {
      "commit": "5875516ea11f77438f2ed23334fc490a706edd56",
      "tree": "64a4066e339bfdd95eb7acf3682fe4ce762c9ebf",
      "parents": [
        "948700612e987b49185f7916befd38f39a2b0a3b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 01 16:15:49 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 01 16:15:49 2013 -0700"
      },
      "message": "Fix reverb at 48kHz\n\nThe LVM reverb wrapper had a test to only accept input\nsampling rate of 44.1 kHz. As the LVM reberb engine\nsupports multiple sampling rate we can remove this test.\n\nThe fix for issue 8512027 (commit 2a9c5cd4) caused a regression\nbecause the framework now checks the return code of the effect\nconfigure command and ignores subsequent commands in case of error.\n\nBug: 8630044\nChange-Id: I3146871f1ad8f7945a2e63ea763dd7b87368337d\n"
    },
    {
      "commit": "2edb6a6aee4f0c8c518397393015a48d1fcce5d2",
      "tree": "4e4c9fb643868aa64cbf53065be6628ab6b20287",
      "parents": [
        "b28c9db525c47b55c08dced8cd50e1c792c45d4c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 01 16:03:28 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 01 16:03:28 2013 -0700"
      },
      "message": "Fix miracast source code to ignore the encoder output format change\n\nit doesn\u0027t care about.\n\nChange-Id: Iec1594775a98b0c1aba662cc9f08652d2f8d4805\nrelated-to-bug: 8616651\n"
    },
    {
      "commit": "9f447e90991315c5a09ba6dfa2ef249922dbf781",
      "tree": "8220c295655cd750632b18177cb243e177b89763",
      "parents": [
        "948700612e987b49185f7916befd38f39a2b0a3b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 01 14:13:26 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 01 14:13:26 2013 -0700"
      },
      "message": "Don\u0027t even try to verify the native resolution validity a\n\nmiracast sink advertises, even if it were valid we couldn\u0027t use it\nsince it\u0027s not consistently implemented by sinks.\n\nChange-Id: Ibee6b3e23b5a55270fc3c419a581e2626530e3af\nrelated-to-bug: 8772006\n"
    },
    {
      "commit": "537d31a995011d28e9d9e88cf67d42f0be3d2f6c",
      "tree": "62b3f56c8e5d05845a65a43ea0c47c0c11bfe824",
      "parents": [
        "948700612e987b49185f7916befd38f39a2b0a3b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 01 13:58:36 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 01 13:58:36 2013 -0700"
      },
      "message": "The software FLAC encoder now properly signals an error if client\n\nattempts to configure it with too large an input buffer size.\nPreviously this would lead to memory corruption during encoding due to a\ntypo.\n\nChange-Id: I229b07b7dbe87fb8424419706671b66a8d58ec6b\nrelated-to-bug: 8778893\n"
    },
    {
      "commit": "cd4ac42ed448f1cb286ca4c3c7ea64621adf9d42",
      "tree": "98644c0a023592c279075dc36ccae40fc8a9505d",
      "parents": [
        "948700612e987b49185f7916befd38f39a2b0a3b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 30 16:08:47 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 30 16:11:50 2013 -0700"
      },
      "message": "Support MediaCodec::getOutputFormat for encoders\n\ncodec specific data is provided as part of the MediaFormat if available.\n\nChange-Id: I5a79c936e2411fe66ebc694791071faefc33941e\nrelated-to-bug: 8616651\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": "f8197a6a9d9363cb52bb8a2c15c0e5a52064355e",
      "tree": "efad34614c9d7e77ed830768279005004376bbb2",
      "parents": [
        "1e25b79b28e578c43607faf100dcaf4cf068f05a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 23 12:39:37 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 23 14:18:18 2013 -0700"
      },
      "message": "Remove timing jitter during startup of audio\n\nThis fixes a regression introduced recently, that increased timing jitter\nduring the startup of the FastMixer and AudioTrack callback threads.\n\nThe regression was to make requestPriority() asynchronous as a way to\navoid an apparent priority inversion in system_server.  This means that\nthe target thread could run briefly with the initial priority, before\nthe new priority takes effect.\n\nThis change removes the startup jitter for FastMixer, by making the\nrequestPriority() synchronous again for that case.  It doesn\u0027t matter\nthat this restores the priority inversion involving normal mixer thread,\nbecause it happens during startup of both threads.\n\nThe change also removes the startup jitter for the AudioTrack callback\nthread, by having the target thread check whether the requestPriority()\nhas completed yet.  If not, the target thread blocks with a timeout\nuntil the priority boost finishes.\n\nFinally, we now log an error message if the expected priority boost\ndoesn\u0027t happen.\n\nBug: 8698989\nChange-Id: Id590e9a274b70ec1ba85b44a585ee37a22e41cbc\n"
    },
    {
      "commit": "c4bd06130e4c3068ab58a0be88a4f765c2267563",
      "tree": "199ffdcceb6e85a62db358857a98da303af83636",
      "parents": [
        "6e96f5927bd2234606ad3fcef1c1dc3029e66347"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 23 13:47:46 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 23 13:47:46 2013 -0700"
      },
      "message": "Remove all traces of wifi display sink implementation and supporting code.\n\nChange-Id: I64b681b7e3df1ef0dd80c0d261cacae293d5e684\nrelated-to-bug: 8698812\n"
    },
    {
      "commit": "6e96f5927bd2234606ad3fcef1c1dc3029e66347",
      "tree": "3f835ca3e388cfdaa3c2522adca65bdd09856222",
      "parents": [
        "20ab26dbe54cd9ef81072c492bc466c0c4da46d8",
        "6b5d15099579c179d8e7531bb5abfb272614513a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 22 16:15:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 22 16:15:52 2013 +0000"
      },
      "message": "Merge \"3rd time\u0027s the charm, right? Fix another instance where MediaCodec would\" into jb-mr2-dev"
    },
    {
      "commit": "d0229c9ae703504cf145e8ef92c97702dbc6963b",
      "tree": "8928ea9f3f6923bfacd0f521b30d7ec927a1891c",
      "parents": [
        "19c04c90478c4c5b8558a9b94713da148b4aa64c",
        "0ae2001f40587556e2f5ed56f791292fb5e9a329"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 19 21:39:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 21:39:37 2013 +0000"
      },
      "message": "Merge \"A flush of a video decoder connected to a native window must reclaim\" into jb-mr2-dev"
    },
    {
      "commit": "6b5d15099579c179d8e7531bb5abfb272614513a",
      "tree": "79b6eb792a15126761fa391ce5ce38a74173267c",
      "parents": [
        "19c04c90478c4c5b8558a9b94713da148b4aa64c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 19 14:33:45 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 19 14:33:45 2013 -0700"
      },
      "message": "3rd time\u0027s the charm, right? Fix another instance where MediaCodec would\n\nnot return from a stop() or release() call if mediaserver dies at just the right\nmoment.\n\nChange-Id: I7728f8df82d62602d4d272f8023aa88678dd7d95\nrelated-to-bug: 8397711\n"
    },
    {
      "commit": "0ae2001f40587556e2f5ed56f791292fb5e9a329",
      "tree": "8b4980c76a87eb6826399dc11d8d771ee9628fcb",
      "parents": [
        "005bb86bd99077283df1968958d5c514a3bfa16a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 19 11:55:18 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 19 11:55:18 2013 -0700"
      },
      "message": "A flush of a video decoder connected to a native window must reclaim\n\noutput buffers already queued for rendering before considering a flush\ncompleted. Otherwise the decoder may not have enough output buffers to\ncontinue decoding after the discontinuity and we\u0027ll never dequeue more\nfrom the native window.\n\nChange-Id: I42e275dc336568e180081c6d7c0dc05fc9637c79\nrelated-to-bug: 8578467\n"
    },
    {
      "commit": "723791e2a829a3254d95fdea1ead9ce542ecbf25",
      "tree": "641fb7c859319df7b4bd342435da1052c4c58222",
      "parents": [
        "37abc6e23e96cae3eb622b1c8983a12153ce16eb",
        "815dd298dc903606181afee3aec23e9cee629e8f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 19 15:34:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 15:34:03 2013 +0000"
      },
      "message": "Merge \"Make sure MediaCodec::stop() and MediaCodec::release() still return\" into jb-mr2-dev"
    },
    {
      "commit": "37abc6e23e96cae3eb622b1c8983a12153ce16eb",
      "tree": "3ce3eba934f819992e28d01565658fe110267ba5",
      "parents": [
        "d8754298b576aca4e85a059ea7b7e8f7a9502226",
        "9b45248b5709440d85c4a3a9a66e2e8780945e0b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Apr 19 14:58:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 14:58:42 2013 +0000"
      },
      "message": "Merge \"Fix sample info parsing\" into jb-mr2-dev"
    },
    {
      "commit": "d8754298b576aca4e85a059ea7b7e8f7a9502226",
      "tree": "fbb35110fcaa02fbb7116c735275bb676747a0f1",
      "parents": [
        "005bb86bd99077283df1968958d5c514a3bfa16a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Apr 18 16:34:44 2013 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Apr 18 16:45:24 2013 -0700"
      },
      "message": "OMXNodeInstance: actually fix OMX_GetExtIndex logging\n\nBug: 8538872\nChange-Id: I228746e8eb502af4bba4054caa4d8569fab35025\n"
    },
    {
      "commit": "815dd298dc903606181afee3aec23e9cee629e8f",
      "tree": "d4a31db8e4b1b7ef0d5026a5a9025519e92ab3ce",
      "parents": [
        "005bb86bd99077283df1968958d5c514a3bfa16a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 18 13:24:17 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 18 13:24:17 2013 -0700"
      },
      "message": "Make sure MediaCodec::stop() and MediaCodec::release() still return\n\ninstead of blocking indefinitely if the mediaserver died while the call\nis pending.\n\nChange-Id: If2789b7fe99634d947ce4a3bb69c04baff5f8b10\nrelated-to-bug: 8397711\n"
    },
    {
      "commit": "9b45248b5709440d85c4a3a9a66e2e8780945e0b",
      "tree": "db459b4189b17c5586697ba11f270d8355c98af9",
      "parents": [
        "005bb86bd99077283df1968958d5c514a3bfa16a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Apr 17 11:49:11 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 18 10:44:35 2013 -0700"
      },
      "message": "Fix sample info parsing\n\nb/8626561\n\nChange-Id: Ibd5168282eb33d1abdc423e15a0d9aeb5a1ad687\n"
    },
    {
      "commit": "790703a1422b46fada45a1210815a6517d35b792",
      "tree": "17500379a35b32ae229b61d4b414d17a60408b07",
      "parents": [
        "06a614eed67cad894026852059a06790c05ef4d6",
        "f2334661f4047beddf0431e7fe5204ca1cf4380b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Apr 17 22:38:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 22:38:20 2013 +0000"
      },
      "message": "Merge \"Make sure the drain buffer is big enough\" into jb-mr2-dev"
    },
    {
      "commit": "06a614eed67cad894026852059a06790c05ef4d6",
      "tree": "b734ebcaadecc55ef3a6ff510548ccf9bcd2b542",
      "parents": [
        "4299eb130affcbf4e272e8dafa90c217dc0abcca",
        "2242fbd1d9327dff9c25ac2aba0fa7d5d471bb88"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 17 22:35:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 22:35:28 2013 +0000"
      },
      "message": "Merge \"Apparently the mp3 decoder glitches if it was configured with the wrong\" into jb-mr2-dev"
    },
    {
      "commit": "4299eb130affcbf4e272e8dafa90c217dc0abcca",
      "tree": "9c6961227204a906beaed4432bf86099a733fb17",
      "parents": [
        "03fb6f01a39f11c1c90f60d16999fa274402f465",
        "ca6867fbac7a69c4d7a253917ecf6d4abc18d49c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 17 19:52:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 19:52:41 2013 +0000"
      },
      "message": "Merge \"Fix a typo that would cause us not to shutdown/flush the decoders in\" into jb-mr2-dev"
    },
    {
      "commit": "03fb6f01a39f11c1c90f60d16999fa274402f465",
      "tree": "9b6e12af61ddb568797c3504e007a7143f9729d5",
      "parents": [
        "96ef6f1bb8c5832682a9576c0e43b6c85e4f5c1b",
        "be2bda4abed36eb6adf474c317d1492b4aec8f1a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 17 19:52:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 19:52:14 2013 +0000"
      },
      "message": "Merge \"Parse the last none-empty line of .m3u8 file\" into jb-mr2-dev"
    },
    {
      "commit": "2242fbd1d9327dff9c25ac2aba0fa7d5d471bb88",
      "tree": "5f2934995453ff4e4c5db0eb8bac92f5e93b6eb1",
      "parents": [
        "96ef6f1bb8c5832682a9576c0e43b6c85e4f5c1b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 16:35:19 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 17 09:45:51 2013 -0700"
      },
      "message": "Apparently the mp3 decoder glitches if it was configured with the wrong\n\nsample rate. Make sure we tell it about the one the extractor provides.\n\nChange-Id: Ice5b9cf55485ca1a8f099a14be0202be9540e781\nrelated-to-bug: 8621639\n"
    },
    {
      "commit": "96ef6f1bb8c5832682a9576c0e43b6c85e4f5c1b",
      "tree": "5cb0168ee7d652b8059eb2a1c8470e36e070621b",
      "parents": [
        "dc2024a80d2eec26afd906348dc52aaaf112d63f",
        "1808736b17073b2fdb82a87abf103cbd31aba4fc"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 17 16:16:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 17 16:16:40 2013 +0000"
      },
      "message": "Merge \"Added CTS test for secure stop APIs\" into jb-mr2-dev"
    },
    {
      "commit": "1808736b17073b2fdb82a87abf103cbd31aba4fc",
      "tree": "643de612baadba29688b38c3132e9fa03cadd4c1",
      "parents": [
        "d961ae47cbc741b0e3d6f038ae0018b7f2a7424e"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 08 15:23:17 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 16 23:01:17 2013 -0700"
      },
      "message": "Added CTS test for secure stop APIs\n\nbug: 8604418\n\nChange-Id: I173fa1ec904ba11dc4cff0343462b3f4bac0d365\n"
    },
    {
      "commit": "f2334661f4047beddf0431e7fe5204ca1cf4380b",
      "tree": "838536756d3b3efd20673d1aba2bb97ceae9ae38",
      "parents": [
        "8461772f46769a384ea87b42848e2d77de529332"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Apr 16 15:57:38 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Apr 16 16:06:46 2013 -0700"
      },
      "message": "Make sure the drain buffer is big enough\n\nb/8614909\n\nChange-Id: I9d973dcd74100b793791359c262b821207ff9ddd\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": "be2bda4abed36eb6adf474c317d1492b4aec8f1a",
      "tree": "bcbce809e997549d83c391c58c97f7d73cf0c56d",
      "parents": [
        "474c6539e3592aece37616d0b39ef008b61260a0"
      ],
      "author": {
        "name": "Sungsoo Lim",
        "email": "sungsoo@google.com",
        "time": "Mon Dec 31 17:48:20 2012 +0900"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 09:23:28 2013 -0700"
      },
      "message": "Parse the last none-empty line of .m3u8 file\n\nIf the last sentence of .m3u8 file is not processed, because\nit is not empty and has no line feed, M3UParser.isComplete()\nreturns false even though it is completed.\n\nChange-Id: I01b9f900d44247a3ef40369a2f9198bb7eaf01b7\nrelated-to-bug: 8405824\n"
    },
    {
      "commit": "8461772f46769a384ea87b42848e2d77de529332",
      "tree": "fb18a69a8f1dbd1dbfd97b6d3fa7cbac0fa10573",
      "parents": [
        "c3e65a8942f482583dd603c02d78a5b1fc85b0e8",
        "602f5bbd7596ec3fe447fde4329d5d4f0b370835"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 16:15:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 16:15:14 2013 +0000"
      },
      "message": "Merge \"Guard against mLooper \u003d\u003d NULL.\" into jb-mr2-dev"
    },
    {
      "commit": "c3e65a8942f482583dd603c02d78a5b1fc85b0e8",
      "tree": "a889451254ec8922334a17a135775a221df96275",
      "parents": [
        "98391d3e9c0188d477fab6044d5259eeb0014113",
        "806df3dbdd19cd1cd3721f39397175b93f257590"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 16 15:42:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 15:42:00 2013 +0000"
      },
      "message": "Merge \"Better default AAC DRC setting\" into jb-mr2-dev"
    },
    {
      "commit": "806df3dbdd19cd1cd3721f39397175b93f257590",
      "tree": "6b0dee0ed8871df704ad82ff8aa2d78f095381f8",
      "parents": [
        "474c6539e3592aece37616d0b39ef008b61260a0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 15 18:40:51 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 15 18:45:51 2013 -0700"
      },
      "message": "Better default AAC DRC setting\n\nBy default, use boost and attenuation together.\n\nbug 7140036\n\nChange-Id: Ie0565f9e5cd24f7a59b5a218b4e6186661832601\n"
    },
    {
      "commit": "98391d3e9c0188d477fab6044d5259eeb0014113",
      "tree": "26ff27f545bd6dbf9276410bdd95f7bd9f6de533",
      "parents": [
        "d961ae47cbc741b0e3d6f038ae0018b7f2a7424e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 15 16:28:49 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 15 16:28:49 2013 -0700"
      },
      "message": "Fix Vorbis decoder reset\n\nb/8543366\n\nChange-Id: I9f32e96fdfc355cf444259a7c40554e2de184728\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": "d961ae47cbc741b0e3d6f038ae0018b7f2a7424e",
      "tree": "984e8c392e2068623bd1fbde7ca1a6f189fb8944",
      "parents": [
        "a75003e583b7b317951ceca13e44f3fd226012c7",
        "931243e2a36bb68eb05cca18bb26549fa7944195"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 15 20:42:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 15 20:42:33 2013 +0000"
      },
      "message": "Merge \"Fix AAC decoder reconfiguration\" into jb-mr2-dev"
    },
    {
      "commit": "931243e2a36bb68eb05cca18bb26549fa7944195",
      "tree": "be97c366a501a3cb97260cbe7edd8c1b8b873d96",
      "parents": [
        "6efa0c06acb4bdcf9c1fb1dbb4beee254e040848"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 15 12:06:18 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 15 12:06:18 2013 -0700"
      },
      "message": "Fix AAC decoder reconfiguration\n\nThe recent flush() changed made the codec behave differently after\na reconfigure. Now we reset its state properly again.\nb/8543366\n\nChange-Id: I8807b5ab02249b43fc1cf315d4e8d4ceb3f9b298\n"
    },
    {
      "commit": "cb7032acc963e447adbffcf95ee297643d64e0d7",
      "tree": "6730cb92f1e131486be08516488b3caff5ff4f99",
      "parents": [
        "474c6539e3592aece37616d0b39ef008b61260a0",
        "e756d9753c7cffe2e9731a31fa98a3e8f37151c9"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 15 18:36:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 15 18:36:01 2013 +0000"
      },
      "message": "Merge \"MediaMuxer prefer not to use the MPEG4Writer in real time recording mode.\" into jb-mr2-dev"
    },
    {
      "commit": "e756d9753c7cffe2e9731a31fa98a3e8f37151c9",
      "tree": "d8d6d13587b902e574690740b850eaf1166e7759",
      "parents": [
        "e574eecea416c813d539a0977d5393c3ed291a1c"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Apr 12 13:50:38 2013 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 15 10:48:33 2013 -0700"
      },
      "message": "MediaMuxer prefer not to use the MPEG4Writer in real time recording mode.\n\nBy default, MPEG4Write will keep running in real time recording mode.\n\nbug:8598944\n\nChange-Id: Idf7fbd4e0feb7763660a74279ba8817b79098aaf\n"
    },
    {
      "commit": "474c6539e3592aece37616d0b39ef008b61260a0",
      "tree": "40d30d43701892049b3196efb88896eadbf5535d",
      "parents": [
        "1821b0a4eb7a78d2744801b1f863455fd384e283",
        "2070254f241f52cadb69bc2323f56df72704f1ca"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 15:16:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 15 15:16:02 2013 +0000"
      },
      "message": "Merge \"Instead of returning an error, return an invalid duration (-1 ms)\" into jb-mr2-dev"
    },
    {
      "commit": "6efa0c06acb4bdcf9c1fb1dbb4beee254e040848",
      "tree": "cbb3542bb698b1877f7d29ef25e13ad02d35ab5d",
      "parents": [
        "91b4e0d2b2dc0d3eeee375d51f48ff8cc243f6ca",
        "ce18d7d85a78ac6642624fef1b5831eff4c72d56"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Apr 12 17:38:49 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 12 17:38:49 2013 +0000"
      },
      "message": "Merge \"OMXNodeInstance: fix OMX_GetExtensionIndex logging\" into jb-mr2-dev"
    },
    {
      "commit": "91b4e0d2b2dc0d3eeee375d51f48ff8cc243f6ca",
      "tree": "02d1a7cdcbbe372468b0b4e69efb9dfdfc9f7d7d",
      "parents": [
        "99076b990cfc6514b7de3a4809b3b3ff3d76e43d",
        "b3ac921cae96686ec0902796bb8f8ef99ae08abd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Apr 12 17:20:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 12 17:20:51 2013 +0000"
      },
      "message": "Merge \"Fix MediaCodec.flush()\" into jb-mr2-dev"
    },
    {
      "commit": "b3ac921cae96686ec0902796bb8f8ef99ae08abd",
      "tree": "ad2cbf69f3794972f9cbf5e5db83a5829e22f8de",
      "parents": [
        "5544c66ba0aa789a997b376df503a5ffae425dc7"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Apr 09 14:57:38 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Apr 12 09:33:40 2013 -0700"
      },
      "message": "Fix MediaCodec.flush()\n\nThere were two problems here. One was that the skip/cut buffer\nwasn\u0027t cleared when it should be, and the second was that we\nwere always sending the first buffer of encoded data to the AAC\ndecoder twice.\nb/8543366\n\nChange-Id: Ic040edabf16cccd1f6ef8c9e5c9cfbacbdd8a089\n"
    },
    {
      "commit": "99076b990cfc6514b7de3a4809b3b3ff3d76e43d",
      "tree": "03276a9a2983cc645888f8ad87338371ee629778",
      "parents": [
        "be4a20d960627427adab56b0c05e6e5f94dbf6a7",
        "6610a7d621c634fe059b855ca7eb3f58fb8d0757"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 12 15:22:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 12 15:22:20 2013 +0000"
      },
      "message": "Merge \"ACodec now signals an error if the mediaserver died while it is in\" into jb-mr2-dev"
    },
    {
      "commit": "6610a7d621c634fe059b855ca7eb3f58fb8d0757",
      "tree": "74b4670c4f0830050379efe2cf35e132a26cd14b",
      "parents": [
        "ecba7488c5cceaacef95836b1b476433451e7761"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 16:06:14 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 16:13:48 2013 -0700"
      },
      "message": "ACodec now signals an error if the mediaserver died while it is in\n\nanything other than \"uninitialized\" state.\n\nChange-Id: Id133d897ac65b455b34e5de17ff9c39b47285630\nrelated-to-bug: 8397711\n"
    },
    {
      "commit": "3c09d025b60dedc605e893d630177bd54552f061",
      "tree": "3ad49abd8f3e6793aaf068700ef56f2bba7752fd",
      "parents": [
        "ecba7488c5cceaacef95836b1b476433451e7761"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:37:28 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:37:28 2013 -0700"
      },
      "message": "The framework really doesn\u0027t need to know the specifics of the codec\n\ncolor format, so stop trying to enforce a whitelist.\n\nChange-Id: I0ceb3bdd5bcc6c1bbd56740b0cd662a2b5820dfe\nrelated-to-bug: 8596546\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": "ecba7488c5cceaacef95836b1b476433451e7761",
      "tree": "83245c19c2dda5c557531edb19478056034b5db5",
      "parents": [
        "5544c66ba0aa789a997b376df503a5ffae425dc7"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "ce18d7d85a78ac6642624fef1b5831eff4c72d56",
      "tree": "9bf59b0e06c1b72a02f8a5d2b5ef026882356d3d",
      "parents": [
        "5544c66ba0aa789a997b376df503a5ffae425dc7"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Apr 09 16:40:54 2013 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Apr 09 17:41:47 2013 -0700"
      },
      "message": "OMXNodeInstance: fix OMX_GetExtensionIndex logging\n\nThis change fixes the logging of OMX_GetExtensionIndex errors.  Under certain\ncircumstances these errors are not harmful and should not be logged.\n\nBug: 8538872\nChange-Id: I19a13d29ca6263454a9a7a8be205e10363725f31\n"
    },
    {
      "commit": "5544c66ba0aa789a997b376df503a5ffae425dc7",
      "tree": "1340a1e933a94542bf1a35ce3c8f667616234bca",
      "parents": [
        "4d2f2e8414df33337d4f09e5235719dfcc705674"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 08 14:30:57 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 08 16:34:27 2013 -0700"
      },
      "message": "Add support for common encryption\n\nb/7465749\n\nChange-Id: I5403b74a5ae428ad28b382863a09daafc400b137\n"
    },
    {
      "commit": "878f9692e4fe9cc2311a8eb74edfa8f6cc0ea54f",
      "tree": "f9816538c231bb4b099e3bbbdfd31a93fcc85d69",
      "parents": [
        "505208dd38ab2f143e6a3ff6a2c262d0fab76b7e",
        "8807524fcb3bcfbf87004dbf1df9722b0a977300"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 05 16:53:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 16:53:23 2013 +0000"
      },
      "message": "Merge \"In certain cases where AAC audio frames extended into the next PES payload\" into jb-mr2-dev"
    },
    {
      "commit": "8807524fcb3bcfbf87004dbf1df9722b0a977300",
      "tree": "7b5b77a890fdc748471c5f516a17251e3abfeff4",
      "parents": [
        "2877100b2768360754f7920f04f95bb5018fbaaa"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 05 09:27:29 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 05 09:30:41 2013 -0700"
      },
      "message": "In certain cases where AAC audio frames extended into the next PES payload\n\n(inside transport streams) timestamps would be miscalculated. This fixes it.\n\nChange-Id: I9d74eeea474d2b89e8a9cdc478ed6085282fb3be\n"
    },
    {
      "commit": "505208dd38ab2f143e6a3ff6a2c262d0fab76b7e",
      "tree": "0ea6a3dd880bca0a840e0fd3d821c943be083a42",
      "parents": [
        "1dc6fcccfe33c65a2253bc3385e45d4e77e4b79e",
        "0cb126a34fe32f81c830858102471e7be2ce85b1"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 05 01:16:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 01:16:19 2013 +0000"
      },
      "message": "Merge \"Implement async event callout from drm plugin to Java app\" into jb-mr2-dev"
    },
    {
      "commit": "1dc6fcccfe33c65a2253bc3385e45d4e77e4b79e",
      "tree": "9f7d64cd14d21481b0a9b7ea1d4245a60316dbf4",
      "parents": [
        "735cb001401ab9e72ff2578e05c8d0caca2f4b04",
        "488bf2281134c549fcc9ffcec7bda9690c2d5617"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 04 23:18:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 23:18:05 2013 +0000"
      },
      "message": "Merge \"Make sure resume() and flush() are handled appropriately even if the codec\" into jb-mr2-dev"
    },
    {
      "commit": "488bf2281134c549fcc9ffcec7bda9690c2d5617",
      "tree": "52aec002ecf04dd66c8e6aae83d87d387ef99bf8",
      "parents": [
        "cba6b7dbe6e6d89c00021a0954d8bf60eacefdfa"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 04 15:37:21 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Apr 04 15:37:21 2013 -0700"
      },
      "message": "Make sure resume() and flush() are handled appropriately even if the codec\n\nis in Loaded-\u003eIdle state.\nb/8347958\n\nChange-Id: Ic14d29502a7effc636251379bb1bbc25739db98e\n"
    },
    {
      "commit": "2877100b2768360754f7920f04f95bb5018fbaaa",
      "tree": "32ed3cde71dfaa245aa524a0dd3dbc647d256388",
      "parents": [
        "5cd66b237d5697e7959fbe6a240c71663cdddf1d",
        "8a9ea338b172a47c1ff117c51f6cd167d4ef953f"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 04 20:11:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 20:11:22 2013 +0000"
      },
      "message": "Merge \"Fix previous changes.\" into jb-mr2-dev"
    },
    {
      "commit": "8a9ea338b172a47c1ff117c51f6cd167d4ef953f",
      "tree": "8fbe5dbb86e973adfdd8c7e575fee7393ebf5797",
      "parents": [
        "eae218f0174ac6470b123ec91e6a309af6f8a8c5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 13:03:03 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 13:07:45 2013 -0700"
      },
      "message": "Fix previous changes.\n\nChange-Id: I1cd3803b6507156174591c3252f1d89ef2e6140a\n"
    },
    {
      "commit": "25a5c604e5b731430e2134838789b99ab937b7ee",
      "tree": "48f43890d36d30b438877790359471ac6e36d7bb",
      "parents": [
        "7f537b72908d0f51698d70840ac666d69a0c53dd",
        "eae218f0174ac6470b123ec91e6a309af6f8a8c5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 19:57:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 19:57:32 2013 +0000"
      },
      "message": "Merge \"Support \"raw\" packetization in RTPSender.\" into jb-mr2-dev"
    },
    {
      "commit": "7f537b72908d0f51698d70840ac666d69a0c53dd",
      "tree": "93268e859cb93327ff6302dbf14ad7b741ddd41e",
      "parents": [
        "a5e88b0d52c83f76cf4167ff31d6bcb2ebf04621",
        "f165e25696be6babf8db99c780fee804aaf364e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 19:57:21 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 19:57:21 2013 +0000"
      },
      "message": "Merge \"New nettest, a simple TCP connection test to measure\" into jb-mr2-dev"
    },
    {
      "commit": "eae218f0174ac6470b123ec91e6a309af6f8a8c5",
      "tree": "5fee418c2e09c9264dc5d2b993cbce7701b1c6d1",
      "parents": [
        "f165e25696be6babf8db99c780fee804aaf364e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 11:16:39 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 11:16:39 2013 -0700"
      },
      "message": "Support \"raw\" packetization in RTPSender.\n\nChange-Id: I14d59573ee0f57eccc104fea0fb46377476d213d\n"
    },
    {
      "commit": "f165e25696be6babf8db99c780fee804aaf364e6",
      "tree": "3c428af170d8e2e500d5b1e5a072568db9c27bbe",
      "parents": [
        "6e8aec8d185444e52ff0247b266f614c690ded13"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 11:12:24 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 11:12:24 2013 -0700"
      },
      "message": "New nettest, a simple TCP connection test to measure\n\nlatency between two devices exchanging low-bitrate data.\n\nChange-Id: Iac138fa70d2a69bbc86c517c953011c80bed071f\n"
    },
    {
      "commit": "04e46929fc316d77426796435bdf13799798c7a8",
      "tree": "a8bff078c4309eeaaaf175fd801278014634d567",
      "parents": [
        "c44834b77a24c050692bff6181bb603c7388b7f2",
        "6e8aec8d185444e52ff0247b266f614c690ded13"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 18:09:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 18:09:18 2013 +0000"
      },
      "message": "Merge \"Removed rtp timestamp patching hack in ANetworkSession, advertise\" into jb-mr2-dev"
    },
    {
      "commit": "c44834b77a24c050692bff6181bb603c7388b7f2",
      "tree": "125efde8439005a313fb6147a0b5fd5cc75b5a91",
      "parents": [
        "3d34fa7fe4df6fb66215303f721cc87ce4619cdc",
        "80bf5cc27e8f3347897aa29a9c16d7ee83577df2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 18:09:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 04 18:09:04 2013 +0000"
      },
      "message": "Merge \"Fix adaptive frame rate handling to be non-adaptive unless specified through\" into jb-mr2-dev"
    },
    {
      "commit": "6e8aec8d185444e52ff0247b266f614c690ded13",
      "tree": "bd6646dbe956390f44a159b947a70abe1a3ab7c5",
      "parents": [
        "80bf5cc27e8f3347897aa29a9c16d7ee83577df2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:50:18 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:50:18 2013 -0700"
      },
      "message": "Removed rtp timestamp patching hack in ANetworkSession, advertise\n\ndifferentiated service tags to help prioritize our traffic.\n\nChange-Id: Ibe42df64da272f4bb6b978e46a4ea2efdadfcbc7\n"
    },
    {
      "commit": "80bf5cc27e8f3347897aa29a9c16d7ee83577df2",
      "tree": "2647d804f20eceea5ad5d0c092f467589e38f4c8",
      "parents": [
        "8344844311b852ea7321e914642bd9e57e0d5fb0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:48:50 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:48:50 2013 -0700"
      },
      "message": "Fix adaptive frame rate handling to be non-adaptive unless specified through\n\nadb shell setprop media.wfd.video-framerate adaptive\n\nChange-Id: I452576b62ad465680232b40464977e126616df18\n"
    },
    {
      "commit": "3d34fa7fe4df6fb66215303f721cc87ce4619cdc",
      "tree": "c45baafeb18a5035082e0b12072fcd63f63c219c",
      "parents": [
        "8344844311b852ea7321e914642bd9e57e0d5fb0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:42:23 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 04 10:42:23 2013 -0700"
      },
      "message": "Fix a number of warnings in stagefright code.\n\nChange-Id: If3edd00d991851797aeccdfe795a4a405e3a2ea3\n"
    },
    {
      "commit": "0cb126a34fe32f81c830858102471e7be2ce85b1",
      "tree": "a20999e4b89a78375a1b69cb3a0bef96fab74362",
      "parents": [
        "8856c8b8777d0e0de11b2de863a336b001024e29"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 02 13:08:05 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 03 12:20:53 2013 -0700"
      },
      "message": "Implement async event callout from drm plugin to Java app\n\nChange-Id: I007f147d693664e777b8758be2bb8a4c7ec0236b\n"
    },
    {
      "commit": "df41f485a9162407b32b7db1cea483f64bbd0c65",
      "tree": "4a25321560089605809b753fccc9365bca9f64bb",
      "parents": [
        "d2c90696403bb3c9e28d7b51d65c9468bdf8e78b",
        "8856c8b8777d0e0de11b2de863a336b001024e29"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 02 22:49:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 22:49:20 2013 +0000"
      },
      "message": "Merge \"MediaDrm API update\" into jb-mr2-dev"
    },
    {
      "commit": "8856c8b8777d0e0de11b2de863a336b001024e29",
      "tree": "21ed9ba7ba5db495085440b34ec75c72bf4af943",
      "parents": [
        "c9e58fcf57d865e6c82fdd4bf49d97f89203b2e4"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sat Mar 30 16:19:44 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 01 21:57:32 2013 -0700"
      },
      "message": "MediaDrm API update\n\nClarify offline usage of sessions and keys and implement\nimplement CryptoSession to support additional crypto use\ncases.\n\nChange-Id: I5d8000ce7e1dd7eba08969fc50296c9e1456c4fc\n"
    },
    {
      "commit": "e574eecea416c813d539a0977d5393c3ed291a1c",
      "tree": "3d90f6c0e975a2757b8e5108f6ee0f8900c65057",
      "parents": [
        "dde3ae3878c3ebed799dc7422a8df2b28f5f3969",
        "7069bdf24a9e3393479368e83f9009817869c33c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 01 21:40:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 21:40:34 2013 +0000"
      },
      "message": "Merge \"Fix seek in response to OnPrepared() for HLS content\" into jb-mr2-dev"
    },
    {
      "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": "dde3ae3878c3ebed799dc7422a8df2b28f5f3969",
      "tree": "89d638c5bb4dcfa7ff1b4c4adb86300723f05704",
      "parents": [
        "cba6b7dbe6e6d89c00021a0954d8bf60eacefdfa",
        "b133a4cb2a5a310a7461050a2d96537c6ce2415e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 01 21:15:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 21:15:46 2013 +0000"
      },
      "message": "Merge \"ToneGenerator: fix overflow in stopTone\" into jb-mr2-dev"
    },
    {
      "commit": "cba6b7dbe6e6d89c00021a0954d8bf60eacefdfa",
      "tree": "579a9b99765f8852599cfb23a5cbba4a77002431",
      "parents": [
        "d49e54289654ab7d7bda03f019ca4421fe303b05"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:51:35 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:54:40 2013 -0700"
      },
      "message": "MTP: Implement date created field in GetObjectInfo\n\nBug: 8293874\nChange-Id: I6b74fe73362bd4fac34ca8a54e127ae91f82aef9\n"
    },
    {
      "commit": "d49e54289654ab7d7bda03f019ca4421fe303b05",
      "tree": "d434446b2507c779610a7ad6f4119e5b92306307",
      "parents": [
        "2f711486c2b35610fb8e114968263e6660cdb683",
        "7268396ee607804570d3ae5927d672894aa708b1"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Apr 01 17:31:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 17:31:15 2013 +0000"
      },
      "message": "Merge \"stagefright: matroska: don\u0027t crash on parsing error\" into jb-mr2-dev"
    },
    {
      "commit": "2f711486c2b35610fb8e114968263e6660cdb683",
      "tree": "08fd87cdaf842dfc248eecd89721ecfb77e4a24d",
      "parents": [
        "63519f7f74e15f88450263e6f752cc76d094add7",
        "57190e05c9f58e22087a2b8411e4b9ff81a92a63"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 20:54:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 20:54:56 2013 +0000"
      },
      "message": "Merge \"Fix SHUTDOWN after SETUP and before PLAY in wifi display.\" into jb-mr2-dev"
    },
    {
      "commit": "57190e05c9f58e22087a2b8411e4b9ff81a92a63",
      "tree": "3f6802eca2b84cc62d5c887fb8747b20e993861d",
      "parents": [
        "857583fd2ecbeb8696ede1f93b7291449fb2d133"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 13:34:10 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 13:52:09 2013 -0700"
      },
      "message": "Fix SHUTDOWN after SETUP and before PLAY in wifi display.\n\nChange-Id: Ieb8ce1ac3130254839975a3677162b64156735bc\nrelated-to-bug: 8499893\n"
    },
    {
      "commit": "b133a4cb2a5a310a7461050a2d96537c6ce2415e",
      "tree": "b028d58efe0ba899e02da6aa7d7f958e58eafc2f",
      "parents": [
        "857583fd2ecbeb8696ede1f93b7291449fb2d133"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 28 11:58:45 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 28 12:00:34 2013 -0700"
      },
      "message": "ToneGenerator: fix overflow in stopTone\n\nFix overflow in tone duration calculation introduced in\ncommit 681be039.\n\nBug 6607077\n\nChange-Id: Ie12f13701345c2b2d3be0b3c4d71cbfa2394a29b\n"
    },
    {
      "commit": "63519f7f74e15f88450263e6f752cc76d094add7",
      "tree": "ddcb710c06074f2b44b86d6686c5e26a27e1f7cc",
      "parents": [
        "20ffad4da71550cf0cacbb26679990258f1561e2",
        "5e691cd3aed18b79cc7362b6689f67886ce90e56"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 18:21:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 18:21:11 2013 +0000"
      },
      "message": "Merge \"Make sure resume() and flush() are handled appropriately even if the codec\" into jb-mr2-dev"
    },
    {
      "commit": "5e691cd3aed18b79cc7362b6689f67886ce90e56",
      "tree": "7fb405cbae88b0a4c15ed7338f5ed3e58b66a592",
      "parents": [
        "857583fd2ecbeb8696ede1f93b7291449fb2d133"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 11:16:43 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 28 11:16:43 2013 -0700"
      },
      "message": "Make sure resume() and flush() are handled appropriately even if the codec\n\nis in Idle-\u003eExecuting state.\n\nChange-Id: I16a10791fae0e062a19299732c472cc93e4ed971\nrelated-to-bug: 8347958\n"
    },
    {
      "commit": "20ffad4da71550cf0cacbb26679990258f1561e2",
      "tree": "80b1ab5e2f3dcef82e63b2f3e0f80fc815199644",
      "parents": [
        "b9c438414a620364ee55d6a1524175660df30327",
        "cbfce76bc7cd986cb391101c384d8e89a14328bf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 28 16:15:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 16:15:14 2013 +0000"
      },
      "message": "Merge \"Fix valgrind error in software h264 decoder\" into jb-mr2-dev"
    },
    {
      "commit": "58b193adcd9f0eef290ecbca9a30657163e856ec",
      "tree": "336491803eeb0d2ff18ba0064014ab4e6910c19e",
      "parents": [
        "857583fd2ecbeb8696ede1f93b7291449fb2d133",
        "ad2bb2dd233b7220e29d2dafa3106ad498f3aea3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 28 15:55:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 15:55:38 2013 +0000"
      },
      "message": "Merge \"Fix valgrind error.\" into jb-mr2-dev"
    },
    {
      "commit": "7268396ee607804570d3ae5927d672894aa708b1",
      "tree": "85e57f74f49ee89b49fa83f2100186104f0622d1",
      "parents": [
        "06f4971bc05dc14fb567f3cc794af210c507b14d"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 27 19:04:12 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 27 20:12:49 2013 -0700"
      },
      "message": "stagefright: matroska: don\u0027t crash on parsing error\n\nMatroskaExtractor crashed with an assertion if mkvparser::ParseNext()\nreturned a negative number.  Now handle all error values the same\nway as the EOF.\n\nChange-Id: I173c4f878d692a0cbdb915ad1118d0686249d625\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 8433794\n"
    },
    {
      "commit": "857583fd2ecbeb8696ede1f93b7291449fb2d133",
      "tree": "339da426a159d401daede0ac91d45584d7d56807",
      "parents": [
        "e31881eee441f409cbe6c1e1f32183ee8a64cdf8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 27 12:05:40 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 27 18:12:22 2013 -0700"
      },
      "message": "ToneGenerator: fix truncated tones\n\nThe first DTMF tone after a silent period is truncated.\nThis is because the phone app starts and stops the tone\nwhen the user presses and releases the key.\nThis combined to the fact that the tones use the low latency path\nand that when the output stream exists standby there is a period\nof several milliseconds during which no audio is mixed until the\nstream is \"warmed up\".\nThe result is that much less audio is generated than the actual\nkey press duration.\n\nThe fix consists in storing the tone start time and making sure that\nthe number of samples generated corresponds at least to the time difference\nbetween the tone start and stop commands.\n\nBug 6607077\n\nChange-Id: I070d20dd8600c25a9e5d5a60c1d3313b7917b00d\n"
    },
    {
      "commit": "e31881eee441f409cbe6c1e1f32183ee8a64cdf8",
      "tree": "8bcda6864ea1598c0957ece80b341f448df0b837",
      "parents": [
        "8d012b56cbd49f33841c13aaa5b7b42020de82ed",
        "2af030214e08f76c796365b0f9e1aca3dc14a6ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 28 00:24:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 00:24:50 2013 +0000"
      },
      "message": "Merge \"ToneGenerator: fix stop/destroy concurrency\" into jb-mr2-dev"
    },
    {
      "commit": "cbfce76bc7cd986cb391101c384d8e89a14328bf",
      "tree": "b2321fdd1197fbf42c36dde0c4f4072c93c9a0f5",
      "parents": [
        "ad2bb2dd233b7220e29d2dafa3106ad498f3aea3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 27 16:44:54 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 27 16:44:54 2013 -0700"
      },
      "message": "Fix valgrind error in software h264 decoder\n\nh264bsdNextMbAddress could read past the end of an allocation, which\ncould conceivably result in a segfault if the allocation was at the\nvery end of a page.\n\nChange-Id: Id7a0c5733d66e609f36feb0e15b2d67b9bbc0b4d\n"
    },
    {
      "commit": "ad2bb2dd233b7220e29d2dafa3106ad498f3aea3",
      "tree": "825fc81526a4421833955121582bd715c4962897",
      "parents": [
        "ac51135d48ded504af38f0bc7fda47823419332f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 27 13:48:36 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 27 14:44:20 2013 -0700"
      },
      "message": "Fix valgrind error.\n\nThe constructor calls reset(), which in turn calls stop(), which then\naccesses mCaptureTimeLapse before it has been initialized.\n\nChange-Id: Ia94ac740b9bd1a0389c72647a5639dd25320d92c\n"
    },
    {
      "commit": "2af030214e08f76c796365b0f9e1aca3dc14a6ef",
      "tree": "253671646e0ec7e5a18cb570df92f35ba4991cd0",
      "parents": [
        "db372594bf27390d2bee089e35c5fb8f67370026"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 16:37:19 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 16:37:19 2013 -0700"
      },
      "message": "ToneGenerator: fix stop/destroy concurrency\n\nThere is a problem if the stopTone() method is called\nfrom two different threads (for instance if the destructor is called\nwhile stopTone() is waiting for the audio callback to finish).\n\nIn this case, the second call to stopTone() will not wait for the\ncondition to be signaled and call clearWaveGens() while the callback\ncan still be active, thus causing a crash.\n\nThere is a similar problem in case of concurrent calls to startTone()\nand stopTone().\n\nThe fix consists in making sure that stopTone() always waits for call\nback completion or timeout and exits before calling clearWaveGens()\nif a concurrent start request is detected.\n\nBug 8163071\n\nChange-Id: I9ddb4390407701dcad5bf83660fd9903f0d72268\n"
    },
    {
      "commit": "c9e58fcf57d865e6c82fdd4bf49d97f89203b2e4",
      "tree": "a1da4a616d4ad3eab41082c5ff52249204072ef4",
      "parents": [
        "db372594bf27390d2bee089e35c5fb8f67370026",
        "4646d5756c06e896f9f8489fa07cd14f958b2f84"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 21:57:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 21:57:28 2013 +0000"
      },
      "message": "Merge \"Adapt frame rate instead of keeping that constant and tweaking bitrate\" into jb-mr2-dev"
    },
    {
      "commit": "4646d5756c06e896f9f8489fa07cd14f958b2f84",
      "tree": "374474bc7b660baf19e3b619f9c112b955fe942b",
      "parents": [
        "190cdbab6ba24519d6b5e8bec6c2c74e6650e284"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 13:52:43 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 14:51:36 2013 -0700"
      },
      "message": "Adapt frame rate instead of keeping that constant and tweaking bitrate\n\nChange-Id: I889abbbe1237e1a8fdd7135cdc91a2e9728ff39b\n"
    },
    {
      "commit": "db372594bf27390d2bee089e35c5fb8f67370026",
      "tree": "f1f73f399cab41da6a204177610f341e0157a63e",
      "parents": [
        "190cdbab6ba24519d6b5e8bec6c2c74e6650e284"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 12:25:30 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 12:25:30 2013 -0700"
      },
      "message": "ToneGenerator: fix AudioTrack pointer init\n\nThe pointer to AudioTrack should be initialized before\nearly return from ToneGenerator constructor because\nit is tested by the destructor.\n\nBug 8140963\n\nChange-Id: I9a7dfb60ba162b75dfaa5630ab7fc9485afd0074\n"
    },
    {
      "commit": "190cdbab6ba24519d6b5e8bec6c2c74e6650e284",
      "tree": "515d0a75f7bf43b802fb3247f3ce86efa7526af8",
      "parents": [
        "27a14b22e03dbd677e100f273e359a0daf2e79c6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 10:19:24 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 10:19:24 2013 -0700"
      },
      "message": "Identify network servers and clients with a OS version related string\n\nand put the logic to create that string in one location instead of many...\n\nChange-Id: I1f729f2e7376cd3b45eea0e48f7bd10084b41b39\n"
    },
    {
      "commit": "27a14b22e03dbd677e100f273e359a0daf2e79c6",
      "tree": "4fe40931fd620cb597774e30a3489a6169df67bb",
      "parents": [
        "bbef2b3f42de20c7d2a920de62d3d1eca40e054f",
        "dca73b8fe8fa4d991e1a78c02f1939aaeb673cc1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 26 16:08:49 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 16:08:50 2013 +0000"
      },
      "message": "Merge \"In \"special\" mode we now establish a UDP RTCP channel in addition to the\" into jb-mr2-dev"
    },
    {
      "commit": "bbef2b3f42de20c7d2a920de62d3d1eca40e054f",
      "tree": "b94c370746e62ef79eaffeba51c32bf7746359c9",
      "parents": [
        "4d6f89052289bd7170238c8797b2ee19115b7626",
        "3beec60725cf0e5cf8e365d6c85928160c2cb75e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 26 00:27:06 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 26 00:27:06 2013 +0000"
      },
      "message": "Merge \"ToneGenerator: optimize silent tone\" into jb-mr2-dev"
    },
    {
      "commit": "dca73b8fe8fa4d991e1a78c02f1939aaeb673cc1",
      "tree": "8f09f89d5a81cc38683193b48ec5baf039590506",
      "parents": [
        "d3d9263ce5e10220552026253d0e205986e82490"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 15:46:52 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 16:20:26 2013 -0700"
      },
      "message": "In \"special\" mode we now establish a UDP RTCP channel in addition to the\n\nTCP RTP channel and provide feedback on the latency of arriving packets from\nthe sink back to the source. This information is then used to throttle\nvideo bitrate.\n\nChange-Id: Ic589a3cb65e4893a3ff67de947da6063d32a1c6e\n"
    },
    {
      "commit": "4d6f89052289bd7170238c8797b2ee19115b7626",
      "tree": "aabe752fde8393983e771a9391ff0f8022c0ce77",
      "parents": [
        "189168155e41731ac2624691172edb18e94879d6",
        "d3d9263ce5e10220552026253d0e205986e82490"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 22:46:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 22:46:43 2013 +0000"
      },
      "message": "Merge \"Get rid of TunnelRenderer\" into jb-mr2-dev"
    },
    {
      "commit": "3beec60725cf0e5cf8e365d6c85928160c2cb75e",
      "tree": "50ff2187d09558f1b6888be545ab2c8274091f18",
      "parents": [
        "cbb2aad7a8aced67d2d97e03d8cd78b1a843290c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 25 14:38:10 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 25 14:38:10 2013 -0700"
      },
      "message": "ToneGenerator: optimize silent tone\n\nDo not create an AudioTrack and start playback when a silent\ntone is requested to ToneGenerator.\n\nBug 7946399\n\nChange-Id: Ib9282871a56f7a862af7d1504ce3fbd7c18e34e2\n"
    },
    {
      "commit": "d3d9263ce5e10220552026253d0e205986e82490",
      "tree": "816f9f4886b09f6609fa27ba37cec1fceaa2a659",
      "parents": [
        "6bb4d7f084c7e2a6d8e804519ad786c519b74d0d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 14:15:24 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 25 14:15:24 2013 -0700"
      },
      "message": "Get rid of TunnelRenderer\n\nChange-Id: I40dc00e2e689d7a6b8717ce524016c2948229807\n"
    }
  ],
  "next": "189168155e41731ac2624691172edb18e94879d6"
}
