)]}'
{
  "log": [
    {
      "commit": "c2a0b4482d7144e8382346ea4c22c7b89368fec0",
      "tree": "f0ec3fbeee8dde1d56ad85c59d858ec093d5eb9d",
      "parents": [
        "f08384c763d2e57c05e0be4325c267d12fc516d4",
        "ee665151a4c6359cbfbb9a6795aa9097c4622083"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Oct 02 14:32:37 2014 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Oct 02 14:32:37 2014 +0100"
      },
      "message": "resolved conflicts for merge of ee665151 to lmp-mr1-dev-plus-aosp\n\nChange-Id: I2588c65b7a9fa43f968151a206924a804f0595a7\n"
    },
    {
      "commit": "33253a4baa6279f81a73425b49dfb6abe5f5416e",
      "tree": "c0077bd08ebc6f3c138a3b4ddb54a0ea1108b200",
      "parents": [
        "0451728645d559d904f579894d4b59e971e2369e"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Oct 01 11:55:10 2014 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Oct 01 14:04:15 2014 +0100"
      },
      "message": "Switch from FloatMath -\u003e Math and Math.hypot where possible\n\nThe motivation is an API change: FloatMath is going to be\ndeprecated and/or removed. Performance is not the goal of\nthis change.\n\nThat said...\n\nMath is faster than FloatMath with AOT compilation.\n\nWhile making the change, occurances of:\n\n{Float}Math.sqrt(x * x + y * y) and\n{Float}Math.sqrt({Float}Math.pow(x, 2) + {Float}Math.pow(y, 2))\n\nhave been replaced with:\n\n{(float)} Math.hypot(x, y)\n\nRight now there is no runtime intrinsic for hypot so is not faster\nin all cases for AOT compilation:\n\nMath.sqrt(x * x + y * y) is faster than Math.hypot(x, y) with\nAOT, but all other combinations of FloatMath, use of pow() etc.\nare slower than hypot().\n\nhypot() has the advantage of being self documenting and\ncould be optimized in future. None of the behavior differences\naround NaN and rounding appear to be important for the cases\nlooked at: they all assume results and arguments are in range\nand usually the results are cast to float.\n\nDifferent implementations measured on hammerhead / L:\n\nAOT compiled:\n\n[FloatMath.hypot(x, y)]\nbenchmark\u003dHypot_FloatMathHypot} 633.85 ns; σ\u003d0.32 ns @ 3 trials\n\n[FloatMath.sqrt(x*x + y*y)]\nbenchmark\u003dHypot_FloatMathSqrtMult} 684.17 ns; σ\u003d4.83 ns @ 3 trials\n\n[FloatMath.sqrt(FloatMath.pow(x, 2) + FloatMath.pow(y, 2))]\nbenchmark\u003dHypot_FloatMathSqrtPow} 1270.65 ns; σ\u003d12.20 ns @ 6 trials\n\n[(float) Math.hypot(x, y)]\nbenchmark\u003dHypot_MathHypot} 96.80 ns; σ\u003d0.05 ns @ 3 trials\n\n[(float) Math.sqrt(x*x + y*y)]\nbenchmark\u003dHypot_MathSqrtMult} 23.97 ns; σ\u003d0.01 ns @ 3 trials\n\n[(float) Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))]\nbenchmark\u003dHypot_MathSqrtPow} 156.19 ns; σ\u003d0.12 ns @ 3 trials\n\nInterpreter:\n\nbenchmark\u003dHypot_FloatMathHypot} 1180.54 ns; σ\u003d5.13 ns @ 3 trials\nbenchmark\u003dHypot_FloatMathSqrtMult} 1121.05 ns; σ\u003d3.80 ns @ 3 trials\nbenchmark\u003dHypot_FloatMathSqrtPow} 3327.14 ns; σ\u003d7.33 ns @ 3 trials\nbenchmark\u003dHypot_MathHypot} 856.57 ns; σ\u003d1.41 ns @ 3 trials\nbenchmark\u003dHypot_MathSqrtMult} 1028.92 ns; σ\u003d9.11 ns @ 3 trials\nbenchmark\u003dHypot_MathSqrtPow} 2539.47 ns; σ\u003d24.44 ns @ 3 trials\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d36199\nChange-Id: I06c91f682095e627cb547d60d936ef87941be692\n"
    },
    {
      "commit": "fd887436bd111e4d2c7307578a51b5070025b7f2",
      "tree": "104b760a73dc5b34c36f407384df26b01121e921",
      "parents": [
        "9f30ce3b82acb1f9582e49e9d87ab0d58c8f9ce4"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Sep 04 13:07:40 2014 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 05 12:43:11 2014 -0700"
      },
      "message": "Camera2: Final API revisions\n\n- Rename listeners to callbacks. Listeners are single-method and are interfaces,\n  while callbacks are abstract may get more methods in the future.\n- Use register/unregister for registering callbacks, not add/remove.\n\nBug: 17389922\nChange-Id: Ic6b46ad79cb43a43a85e2a4b63f059d3af99798b\n"
    },
    {
      "commit": "0a160acf297b583e12a9710c929c4ba9a38f7353",
      "tree": "33147e4171781db62bf31c42be1b3e4bf9ce2722",
      "parents": [
        "0c116e1573184f33883bc3722277ecc6560ebca9"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 02 14:29:26 2014 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sun Jul 06 17:31:14 2014 -0700"
      },
      "message": "Camera2: Hide all the deprecated methods and interfaces\n\nLeave them in for now until bundled clients complete updating\n\nChange-Id: Ibd0fc971258ce6b649000c48dd7a6716f1ab91d4\n"
    },
    {
      "commit": "b84fdffad40226ca642680c7d1eec7c7799f07aa",
      "tree": "ea519bbb49899fe2f77a65392a1952dc9bc1b399",
      "parents": [
        "0aad830d1b3006c75a66c02d29d3147c8765b815"
      ],
      "author": {
        "name": "Sol Boucher",
        "email": "solb@google.com",
        "time": "Wed Jun 04 16:05:55 2014 -0700"
      },
      "committer": {
        "name": "Solomon Boucher",
        "email": "solb@google.com",
        "time": "Wed Jun 11 21:47:49 2014 +0000"
      },
      "message": "Add CameraToo, a sample point-and-shoot camera app\n\nIt demonstrates basic use of the features of the new Camera2 API.\n\nChange-Id: I593bc682e5c6203754e9a3ee9a78efbd1b208513\n"
    },
    {
      "commit": "db075afc85b6b50a5d3a988a17ed0d4e09ef0823",
      "tree": "4b11bcc6012a28a6a92d24c79a5817e8116799ca",
      "parents": [
        "5d0045835b0bfd456b9400be1cacdc8cb16d6cc7"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed May 21 10:07:08 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue May 27 11:25:24 2014 -0700"
      },
      "message": "camera2: Add partial results to the capture listener (API change)\n\n* Also adds capture sequence aborted callback\n\nBug: 12492876\nChange-Id: I56ec8edbcda8b64c2262ff7472961ac78042c7f4\n"
    },
    {
      "commit": "8a985d24ce9a38f40ed88fecbdcd0e75e3a68f44",
      "tree": "a71a241bf554a157a25d54dce66364d7881c3579",
      "parents": [
        "875e2101d71afe7e4acf10b061c942fbf7294775"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Feb 25 09:40:05 2014 -0500"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Feb 25 09:49:29 2014 -0500"
      },
      "message": "Tabs -\u003e spaces in frameworks/base.\n\nChange-Id: I5a84e8e93ac99b5ed0212b37bf66efa5e53864be\n"
    },
    {
      "commit": "83511d2f49c9e272f328730586c3d0a7852247f2",
      "tree": "b9b741001599ebee76df2e670cb4439353fc328e",
      "parents": [
        "4a5eb8fe18337597ece6ca1cedbbb56a0b309c39"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 16 10:10:38 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 16 12:35:15 2014 -0800"
      },
      "message": "Add \"throws IOException\" to MediaCodec factory methods\n\nandroid.media.MediaCodec\n(createByCodecName|createDecoderByType|createEncoderByType)\nnow explicitly throws IOException.\n\nRequires changes to existing code for declaration compatibility.\n\nBug: 11364276\nChange-Id: I105ecb7c4bd49bf803111253cd23bab161c988f9\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "8ca55fc980a567270d397c7392fd5fa8490f6d42",
      "tree": "5c5404e80d6bb6c3ed75ba738835819d9be0eeb6",
      "parents": [
        "52d8aa79a31c5042d2b43d06f08fa28489b27d1b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 07 04:06:31 2013 +0000"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 07 04:06:31 2013 +0000"
      },
      "message": "Revert \"Add \"throws IOException\" to MediaCodec constructors (3)\"\n\nThis reverts commit 52d8aa79a31c5042d2b43d06f08fa28489b27d1b.\n\nChange-Id: Ic706e0fb469931664499d00fa3a221726b258673\n"
    },
    {
      "commit": "52d8aa79a31c5042d2b43d06f08fa28489b27d1b",
      "tree": "1b3da59936eefe7295378bf432afbd684a23174b",
      "parents": [
        "2ea312c1bf5f618f4877806b07e0fb2aa4541e6f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 04 14:42:09 2013 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 05 18:54:43 2013 -0800"
      },
      "message": "Add \"throws IOException\" to MediaCodec constructors (3)\n\nChange to add \"throws IOException\" to android.media.MediaCodec\n(createByCodecName|createDecoderByType|createEncoderByType).  The exception was\npreviously thrown through the native JNI, but not explicitly declared.\n\nRequires changes to existing code for declaration compatibility.\n\nBug: 11364276\nChange-Id: Ia0d3481397285cb1503bedde37d4651934b3a481\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "69b94f7c5520f3fa817a7bb1e4d1205b593e6c47",
      "tree": "3663fdf7bc10b159fdf6fbc68c7b959ece721721",
      "parents": [
        "bd7f343c7510aa512ceb6d6833ca0e4f2aa2a1d2"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Oct 15 15:23:07 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Oct 15 15:23:07 2013 -0700"
      },
      "message": "SmartCamera: Fix to build against latest camera2 api\n\nBug: 10818732\nChange-Id: I536021b9663331532e2f4c21a4fc0f3de5da9aa9\n"
    },
    {
      "commit": "bd7f343c7510aa512ceb6d6833ca0e4f2aa2a1d2",
      "tree": "7f5dad5aa9d5fa0c4b0f2dc54fa536bd6176b8a8",
      "parents": [
        "227b47625d7482b5b47ad0e4c70ce0a246236ade"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 20 15:45:50 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Oct 15 15:11:41 2013 -0700"
      },
      "message": "Camera2Tests: update SmartCamera for async api\n\nChange-Id: I6eb541c96ee50756c35e7785fdae63e8e45e2726\n"
    },
    {
      "commit": "227b47625d7482b5b47ad0e4c70ce0a246236ade",
      "tree": "d8a4107d4d04e89e6006b5b1898850d970bd2db9",
      "parents": [
        "f847c3b014ab49fae6bbbc9dd7aac199b31467df"
      ],
      "author": {
        "name": "Benjamin Hendricks",
        "email": "coolbnjmn@google.com",
        "time": "Thu Sep 19 14:40:45 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Oct 15 15:11:34 2013 -0700"
      },
      "message": "Camera2Tests: Add SmartCamera App\n\nBug: 10818732\nChange-Id: I6ac08ecab3a1e04116be2f7764d0d5d4f29c5cd9\n"
    },
    {
      "commit": "b7c255ce91bacbf9d412b50deaaeff659b786184",
      "tree": "417340d028fdcd628cf6a1704728838a23672b37",
      "parents": [
        "1e4e38252f8eb44fe382e371e29857834cf9fc15"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 18 10:51:25 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 18 10:51:25 2013 -0700"
      },
      "message": "Camera2Tests: create new directory for manual camera2 test apps\n\nBug: 10818732\nChange-Id: Idbc7e370d43a95e8f647541ab1e20071c212382d\n"
    }
  ]
}
