)]}'
{
  "log": [
    {
      "commit": "6811f4e92cbb64e72a0d13eb9b99b5894bd59c76",
      "tree": "5b0ebddf52a449b1ea84d91d6313e897a03e2b3e",
      "parents": [
        "f95c9aa7e1229963a4cb92eed46eafc205b03cb3"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Sep 18 15:58:28 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 19 17:12:47 2013 -0700"
      },
      "message": "Move PdfDocument to android.graphics.pdf\n\n1. Move PdfDocument to android.graphics.pdf.\n\n2. Changed the PdfDocument as per API concil request.\n\n3. Updated the documentation.\n\nbug:10461180\nbug:10552565\nbug:10681585\nbug:10552336\n\nChange-Id: I08e15b34cf37bb064248c887e6f59808019cafe8\n"
    },
    {
      "commit": "7315f1baee19476363235127bc1438e2a291fa15",
      "tree": "376c68ec739e970b66165d059cf8e1e8e6d86980",
      "parents": [
        "c255a7113a6a6b058f1b3b5b128fba1d24bbd3d9"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Sep 10 20:26:05 2013 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Sep 18 12:01:20 2013 -0400"
      },
      "message": "Use a native buffer for decoding images.\n\nFixes BUG:10725383\n\nDepends on https://googleplex-android-review.git.corp.google.com/#/c/357300/\nin external/skia.\n\nIn the previous fix for BUG:8432093 and BUG:6493544\n(https://googleplex-android-review.googlesource.com/#/c/346191/),\ninstead of calling mark on the provided input stream, we\ncopied the entire stream in native code (except in one case;\nmore details below), allowing rewind no matter how much of\nthe stream had been read. This was because two decoders\nmay rewind after reading an arbitrary amount of the stream:\nSkImageDecoder_wbmp and SkImageDecoder_libjpeg.\n\nIt turns out that the jpeg decoder does not need this rewind\nafter arbitrary length (it is a failure recovery case, and\nlibjpeg has a default recovery we can use - the above referenced\nCL in Skia uses the default).\n\nAlthough the wbmp decoder could read any amount given a\nstream with the \"right\" data, and then return false, such a\nstream would not be a valid stream of another format, so it\nis okay for this rewind to fail.\n\nFurther, the previous fix was inefficient in the common case\nwhere the caller decodes just the bounds, resets, then decodes\nthe entire image (since we have copied the entire stream twice).\nThe copy also resulted in the crashes seen in BUG:10725383.\n\nIn this CL, buffer only the amount of input needed by\nSkImageDecoder::Factory to determine the type of image decoder\nneeded. Do not mark the input stream provided by the caller,\nso their mark (if any) can remain in tact. The new Skia class\nSkFrontBufferedStream allows buffering just the beginning\nof the stream.\n\ncore/jni/android/graphics/BitmapFactory.cpp:\nInstead of calling GetRewindableStream (which has been removed),\ncall CreateJavaInputStreamAdaptor. Then wrap it in an\nSkFrontBufferedStream, with a large enough buffer to determine\nwhich type of image is used.\n\ncore/jni/android/graphics/CreateJavaOutputStreamAdaptor.h:\ncore/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp:\nRemove mark, markSupported, and rewind. CreateJavaInputStreamAdaptor\nnow turns an SkStream which is not rewindable. If the caller\nneeds rewind that needs to be handled differently (for example,\nby using SkFrontBufferedStream, as is done in BitmapFactory and\nMovie.\nRemove RewindableJavaStream and GetRewindableStream.\nRemove code specific to ByteArrayInputStream, which makes slow\nJNI calls. Instead, depend on the caller to buffer the input\nin the general case. There is no reason to special case this\nstream (especially since we already have decodeByteArray).\nRemove CheckForAssetStream, which is now always special cased\nin Java.\n\ncore/jni/android/graphics/Movie.cpp:\nCall CreateJavaInputStreamAdaptor and use an SkFrontBufferedStream.\nAdd a native function for decoding an Asset, and remove old\ncall to CheckForAssetStream.\n\ngraphics/java/android/graphics/BitmapFactory.java:\nWrite a helper function for decoding a stream to consolidate\ncommon code.\nBuffer enough of the input so that SkImageDecoder::Factory\ncan rewind after having read enough to determine the type.\nUnlike the old code, do NOT mark the caller\u0027s stream. This is\nhandled in native code. The caller\u0027s mark (if any) is left alone.\n\ngraphics/java/android/graphics/Movie.java:\nCheck for an Asset stream before passing to native, and\ncall a native function for handling the asset directly.\n\nBUG:6493544\nBUG:8432093\nBUG:10725383\n\nChange-Id: Ide74d3606ff4bb2a8c6cdbf11bae3f96696f331a\n"
    },
    {
      "commit": "2cad64c0fbeba07bb546674e19cfb0166d7ec332",
      "tree": "7ec5d5625c648ea459f4c4ec17917dae633e26f2",
      "parents": [
        "444ae3a2e66b4404fa715ab46403da09079dd572",
        "a86ab640f7bb0bf3cb4eaed80473ca8c5d131903"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 11 18:27:59 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 11 18:28:07 2013 +0000"
      },
      "message": "Merge \"Surface: Change OutOfResourcesException to be a runtime exception\" into klp-dev"
    },
    {
      "commit": "1d2daa7809b58c226410c0060d7837de0a29888a",
      "tree": "4000e44aec08a20f016f35f169b0c38d2e08ff0f",
      "parents": [
        "8716c08151378f7488a0f129fe43a0b3d4dc499d",
        "5835157d762a5b6bffe3d892c588ebc475bccb44"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Sep 10 16:25:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 10 16:25:14 2013 +0000"
      },
      "message": "Merge \"Remove FD optimization case for decodeStream\" into klp-dev"
    },
    {
      "commit": "e3d0f022826a2a16e64dc9b5353a2a514393881b",
      "tree": "b824856d1031967e15049caa65ad885fa76d9ea8",
      "parents": [
        "5f5e84770badd10c41fd4a2b01a9958a607eacd9",
        "88990da58d0231b5a1b9a27b32c37839e95c7487"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Tue Sep 10 05:23:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 10 05:23:15 2013 +0000"
      },
      "message": "Merge \"Don\u0027t set Allocation mSize when we have no Type.\" into klp-dev"
    },
    {
      "commit": "a86ab640f7bb0bf3cb4eaed80473ca8c5d131903",
      "tree": "472883eaf9edff25136902d4976f275c56218b41",
      "parents": [
        "ff44ed58a1e38ff830e74b0d73549ff01725852d"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 30 12:58:36 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Sep 09 21:53:59 2013 -0700"
      },
      "message": "Surface: Change OutOfResourcesException to be a runtime exception\n\n- Deprecates SurfaceTexture.OutOfResourcesException, it wasn\u0027t used\n- Make all JNI code throw only Surface.OutOfResourcesException\n- Get rid of redundant SurfaceControl.OutOfResourcesException\n\nBug: 10566539\nChange-Id: I58126260771b9ccff6a69c672ce7719b9f98138d\n"
    },
    {
      "commit": "88990da58d0231b5a1b9a27b32c37839e95c7487",
      "tree": "c76a81dd08bdc49b46be9956d3126b35db882dbf",
      "parents": [
        "6416729c4732be6bcdbc5f303752a9d1885f86d0"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Sep 09 17:56:07 2013 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Sep 09 17:56:07 2013 -0700"
      },
      "message": "Don\u0027t set Allocation mSize when we have no Type.\n\nBug: 10667740\n\nA3D creates Allocations before knowing the underlying Type (and thus size).\nMoving the mSize calculation to be conditional for concrete Allocations\neliminates the bug. In the future, we could let A3D dynamically update the\nAllocation size if it is necessary to improve heap behavior.\n\nChange-Id: I520246806b6ead0387a1a41372dade1a6e7c2271\n"
    },
    {
      "commit": "5835157d762a5b6bffe3d892c588ebc475bccb44",
      "tree": "2540b1359dc480b22094e81544a4dd84fdd333ed",
      "parents": [
        "23ae1461d2cf0ac3f1da71200544381a8d8a4957"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Sep 09 16:37:57 2013 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Sep 09 23:41:20 2013 +0000"
      },
      "message": "Remove FD optimization case for decodeStream\n\n Bug: 10677727\n The problem is that the FileInputStream may be wrapping a pipe or\n AssetFileDescriptor which fails if handed to decodeFileDescriptor.\n The problem is that AFDs can start in the middle of a file, whereas\n decodeFileDescriptor assumes it can mmap() the FD and start at\n the beginning.\n\nChange-Id: I98a3c5f789865145e25a99b32d205e290808c1cf"
    },
    {
      "commit": "440f4dfac89c113b41f1a7259306b90b0cde8768",
      "tree": "0ccdbf67e7fb766e346667befa1c3489fc8a52bb",
      "parents": [
        "bec23ea922566c4b1656deffe1b1951575ae923f",
        "5d2cace4c5445915c9ea040518c59d85cfcd6b4b"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Sep 09 22:55:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 09 22:55:35 2013 +0000"
      },
      "message": "Merge \"Fix pixel test\" into klp-dev"
    },
    {
      "commit": "5d2cace4c5445915c9ea040518c59d85cfcd6b4b",
      "tree": "08eb666d9163d1bf29ffbe628ce8abfdc4b150e4",
      "parents": [
        "bdd61696c6720faa14ca9fdf180e519138b3d087"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Sep 09 10:19:44 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Sep 09 10:19:44 2013 -0700"
      },
      "message": "Fix pixel test\n\nA deprecated format was dropped entirely.\n\nBug 10666734\n\nChange-Id: I6b64bd27db8965a1696d72387232b7de4bce6574\n"
    },
    {
      "commit": "352919efd02808f0d6222f7a2cc657f3455c2049",
      "tree": "2997f863cded7a022bd9156d4c0c6859d3f9884b",
      "parents": [
        "b8b017cb6879352aee015ba24e9bfd05cc094e74"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 06 18:45:51 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 06 18:52:22 2013 -0700"
      },
      "message": "Update doc for BitmapFactory.Options to include BitmapRegionDecoder\n\nbug:9987022\nChange-Id: I1a4e187e1c35a7758b70f69a0a25914597920e8f\n"
    },
    {
      "commit": "e8222dddaf2e3da14380101e818d4254899e0c0d",
      "tree": "082abae3fd483ef9cf6ea2ee5a9c2ee19363a08a",
      "parents": [
        "9e8bdc39bcdfc22d05edd5f4a0ca69cdffec4f34"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Sep 05 07:44:18 2013 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Sep 05 08:44:33 2013 -0700"
      },
      "message": "Change build version from KEY_LIME_PIE to KITKAT\n\nIssue #10631619 Change build version to KitKat\n\nChange-Id: I6ad13f6169ad74204078d36929479998b498ad8b\n"
    },
    {
      "commit": "d2676f9bd93c333ae2c7f3ca284d0fef5a7e146b",
      "tree": "1b69726920d7644c38f5063220f59dbde1a25337",
      "parents": [
        "c5c203d6ef8eea46f1c06f52e3ebfcc59c304760",
        "932e78e9903342e3494983fd3463084caab4ba42"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Sep 05 07:36:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 05 07:36:43 2013 +0000"
      },
      "message": "Merge \"Add YUV element convenience function.\" into klp-dev"
    },
    {
      "commit": "932e78e9903342e3494983fd3463084caab4ba42",
      "tree": "2892ce127d617120c1e6acb6722103cc4d179a47",
      "parents": [
        "5c2dfa8a21e7bd4e07e00f268d30058b654aa099"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Sep 03 11:42:26 2013 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Wed Sep 04 16:15:45 2013 -0700"
      },
      "message": "Add YUV element convenience function.\n\nChange-Id: Ie67dfba6a4c4f1913875ad9817c53e45d56809ae\n"
    },
    {
      "commit": "e182bfd4dcf35d5009bcae72356b999b5ead0433",
      "tree": "7ce91470652881a7b3d9fd30da2d095ed489cb0d",
      "parents": [
        "a861245f06e854d47ff44155ebd3ac0e31c0cb2c",
        "9622adf6e8028aebd57213371c4f2c6c26fc63e5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 03 23:32:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 23:32:33 2013 +0000"
      },
      "message": "Merge \"Prevent NPE when cloning gradients Bug #10436856\" into klp-dev"
    },
    {
      "commit": "9622adf6e8028aebd57213371c4f2c6c26fc63e5",
      "tree": "9b2cca35eb3b335998bc4c88d5b9c35409b82598",
      "parents": [
        "25ba1c86945a441428194d9ebcabbf31be75a45a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 03 16:08:00 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 03 16:08:00 2013 -0700"
      },
      "message": "Prevent NPE when cloning gradients\nBug #10436856\n\nChange-Id: I98cbce941a06842112b8caa3753a3fa32b227da9\n"
    },
    {
      "commit": "3e8105e212e65005c0ef0ecc345b47eb0bf129bd",
      "tree": "10d9cdb1e4f8e4a9a122a912d79c3641ddb50b1d",
      "parents": [
        "59f6b510569a4c70c43c5b9b80fa70d5a28d99f0",
        "25ba1c86945a441428194d9ebcabbf31be75a45a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 03 21:41:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 21:41:39 2013 +0000"
      },
      "message": "Merge \"Update Bitmap.Config.ARGB_4444 documentation Bug #10510122\" into klp-dev"
    },
    {
      "commit": "25ba1c86945a441428194d9ebcabbf31be75a45a",
      "tree": "df779e4383b091162e10a6737324d7181ba99ee3",
      "parents": [
        "5d923200846ed59e813373bde789d97d4ccc40b5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 03 11:50:23 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 03 11:50:23 2013 -0700"
      },
      "message": "Update Bitmap.Config.ARGB_4444 documentation\nBug #10510122\n\nARGB_4444 is deprecated and always replaced with ARGB_8888.\n\nChange-Id: I0da96216af701a7df00ad35913066fbfa997d790\n"
    },
    {
      "commit": "a49e89d2288827e2c96bc006e1e4893d22b41f3b",
      "tree": "d7883db11fbdea690ee541473ab0b71e638daa8d",
      "parents": [
        "6b115980483ec20cc3f7817c76dfea18c49a48f3"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Aug 29 17:00:37 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Aug 29 17:00:37 2013 -0700"
      },
      "message": "Cleanup API typo\n\nbug 10548782\n\nChange-Id: I3654b7d1f8ea10eb51006804248cc2a7d20eabb0\n"
    },
    {
      "commit": "6b115980483ec20cc3f7817c76dfea18c49a48f3",
      "tree": "62222f74ca0b127c46848d76a7a551d47e2e7e95",
      "parents": [
        "a78d9a24d97818a6c9c071483d7854b560ecf228",
        "42ef238208679813daa204bf110f776ab02c2beb"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Aug 29 21:24:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 29 21:24:28 2013 +0000"
      },
      "message": "Merge \"Unhide USAGE_IO_INPUT functions\" into klp-dev"
    },
    {
      "commit": "42ef238208679813daa204bf110f776ab02c2beb",
      "tree": "0b81e5e6aeb08a7f89c128a384cb26c7a133d8d0",
      "parents": [
        "6b223c6a5be788ca28d5d911ab10650be673684b"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Aug 29 13:30:59 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Aug 29 13:30:59 2013 -0700"
      },
      "message": "Unhide USAGE_IO_INPUT functions\n\nChange-Id: I9c1a7e5d65adee133b99b9a94729ab0b3d5a097f\n"
    },
    {
      "commit": "4b2993123bf9a1c56d0a16b032612834dd418520",
      "tree": "abdb0c257f0862c32b7f1b509e8073ca41669a85",
      "parents": [
        "7be3a138d57713bbe6d624998620081807e65b71",
        "ca32021b43f326af7d3f4ae041f8db297f98a518"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Aug 29 17:12:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 29 17:12:01 2013 +0000"
      },
      "message": "Merge \"Replace stream wrap-function w/ more specific ones\" into klp-dev"
    },
    {
      "commit": "4d971c1fa0c71400ff1e843b8d8b4826d0aece16",
      "tree": "714e52e4573998becfffeb171427c32f82e690e6",
      "parents": [
        "107e2d418b335263da01aaa9bafb69475e79d7f7"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 28 10:24:12 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Aug 28 10:24:12 2013 -0700"
      },
      "message": "Set alpha channel correctly when recomputing gradient\n\nThe alpha channel is applied by modulateAlpha(). Setting it to\nmAlpha in ensureValidRect() locked the maximum alpha channel to\nwhatever value was set before layout. Setting it to BLACK\nensures it can be modulated later.\n\nBUG: 10514848\nChange-Id: If7a824410a66f1e9b648e20ee627bdf99a42ae78\n"
    },
    {
      "commit": "ca32021b43f326af7d3f4ae041f8db297f98a518",
      "tree": "95c04e5b699d34181a2fc2f4e866bc2759250fdb",
      "parents": [
        "fead1290d74492af5fdf3dcb6739fbd1898dc239"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Aug 20 17:59:39 2013 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue Aug 27 15:28:58 2013 -0400"
      },
      "message": "Replace stream wrap-function w/ more specific ones\n\nThe current stream wrapper returns a potentially incorrect\nvalue for a call to getLength(), is typically copied into\nanother stream (not always in the same way), and doesn\u0027t\nalways take advantage of its underlying data (like when it\nis an Asset). The overall goal of this CL is to provide the\ncaller with something that is ready to use, depending on\nwhat is asked for. If a copy is desired, the copy is made\nbefore being returned to the caller.\n\ncore/jni/android/graphics/Bitmap.cpp:\n\n    Include SkStream.h, since it is no longer included by\n    CreateJavaOutputStreamAdaptor\u0027s header file.\n\ncore/jni/android/graphics/BitmapFactory.cpp:\n\n    Pass an SkStreamRewindable to decoding functions, as Skia\n    decoders will be updated to only take an SkStreamRewindable\n    (which makes more sense because they require rewinding).\n\n    Call the more specific GetRewindableStream to get a\n    rewindable stream.\n\n    Remove copyAssetToStream which has been moved to Utils.\n\n    In nativeDecodeAsset, pass forcePurgeable as allowPurgeable\n    in doDecode. Technically the old code worked, but it checked\n    the BitmapOptions again.\n\n    Remove getFDSize, which is no longer used.\n\ncore/jni/android/graphics/BitmapRegionDecoder.cpp:\n\n    Remove redundant buildSkMemoryStream. nativeNewInstanceFromStream\n    now calls CopyJavaInputStream, which handles the copy.\n\n    Copy the Asset directly, using common code, rather than creating\n    an AssetStreamAdaptor to copy.\n\ncore/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp:\ncore/jni/android/graphics/CreateJavaOutputStreamAdaptor.h:\n\n    Provide new interfaces to access data from a Java InputStream.\n    The new interfaces are more specific about what type of stream\n    is desired.\n\n    Use forward declarations where possible.\n\n    Remove doSize, which gives a misleading answer to the question\n    of how long the entire stream is.\n\n    TODO: Only call FindClass etc once.\n\ncore/jni/android/graphics/Movie.cpp:\n\n    Check for an asset stream, and use it if possible. Then call\n    GetRewindableStream if there is not an asset.\n    Remove the memory leak. Call DeleteLocalRef to delete the\n    allocated memory.\n\ncore/jni/android/graphics/Picture.cpp:\n\n    Call the new interface.\n\ncore/jni/android/graphics/Utils.cpp:\ncore/jni/android/graphics/Utils.h:\n\n    Make AssetStreamAdaptor inherit from SkStreamRewindable so it\n    can be passed to Skia decoding functions once they require it.\n\n    Add CopyAssetToStream (moved from BitmapFactory.cpp) so it can\n    be used by multiple files.\n\ngraphics/java/android/graphics/BitmapFactory.java:\n\n    Remove the call to mark, which is now done natively.\n\n    Remove the BufferedInputStream. Mark/reset is now handled\n    by native code.\n\n    Allow decodeStream to handle a FileInputStream by using the\n    FileDescriptor, if it is seekable. In decodeFileDescriptor,\n    call nativeDecodeStream instead of decodeStream so this new\n    functionality will not loop.\n\n    Call setDensityFromOptions in decodeFileDescriptor.\n\ngraphics/java/android/graphics/BitmapRegionDecoder.java:\n\n    Remove the BufferedInputStream. Mark/reset is now handled\n    by native code.\n\nTODO: ADD TESTS!\n\nRequires https://googleplex-android-review.googlesource.com/#/c/344317/\n\nBUG\u003dhttps://b.corp.google.com/issue?id\u003d8432093\n\nChange-Id: I4419b70b3482325c98ecc673dbfc4613f1b18581\n"
    },
    {
      "commit": "c264e0440076ccca4be6ec66e33bcd7f8a1ae5b3",
      "tree": "51618ff35364eefaa3caca26631b29805ea3ca1d",
      "parents": [
        "5de1faca166e2241cf9ad1981007caa947a1fc1b",
        "2f2472c42be8e80f00019594036744d902e09dcb"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Fri Aug 23 23:40:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 23:40:48 2013 +0000"
      },
      "message": "Merge \"Add garbage collection hooks\" into klp-dev"
    },
    {
      "commit": "2f2472c42be8e80f00019594036744d902e09dcb",
      "tree": "2f36a019cf92994293e66cd54b897ae04c7f4e1d",
      "parents": [
        "2365745855ac4725949ebe9bae72fdc0613bb94f"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Aug 22 14:55:26 2013 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Fri Aug 23 13:35:19 2013 -0700"
      },
      "message": "Add garbage collection hooks\n\nbug 10428172\n\nChange-Id: I6365aa58bbc99aa134e1f261a5819e07a7d70fb0\n"
    },
    {
      "commit": "1abf5d62429e5a9329520b2f7c2b5a5e7a8e72ec",
      "tree": "4c49fb0d025ab4232a399f707141bb4357c827c9",
      "parents": [
        "b4f6a01d51612b9e50dffd95905e9c9add79b5d8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 16 12:47:03 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Aug 20 18:29:33 2013 -0700"
      },
      "message": "Add inPremutiplied option to BitmapFactory.Options, functionality in Bitmap\n\nbug:2248948\n\nChange-Id: I8fdd649332667598504a1076d5a447572bd53086\n"
    },
    {
      "commit": "9fac8a6a4a47bf7b72d6c759c6f605b1806f925a",
      "tree": "8efc3268665a61fb42e967d70f79072f1b5c38b4",
      "parents": [
        "e9d372a1fa6af81cff038d7da60e4d67e54f71d3",
        "ccadaf1eb48c70a3eb5722ecbd0144d165bcd963"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 00:36:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 00:36:45 2013 +0000"
      },
      "message": "Merge \"Renderscript: Allow YUV_420_888 as a YUV type.\" into klp-dev"
    },
    {
      "commit": "ccadaf1eb48c70a3eb5722ecbd0144d165bcd963",
      "tree": "f03ca34f9b11e54b1f2a458b71603789bf363003",
      "parents": [
        "43e56c4a911c8d192b3e8cc1c6de664e8755cb73"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 14 10:36:30 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 14 10:40:30 2013 -0700"
      },
      "message": "Renderscript: Allow YUV_420_888 as a YUV type.\n\nChange-Id: I1ed731103a49a814f9a049ecd01be98261b6d06b\n"
    },
    {
      "commit": "be925721a5eef487a70baa8b0905e423c639e176",
      "tree": "48d7174fa9b278b5b2cf181a2a308500b60e5ae8",
      "parents": [
        "ca2fb9158e104ac88c8014e1273fd4554e1acd23"
      ],
      "author": {
        "name": "Mike Klein",
        "email": "mtklein@google.com",
        "time": "Wed Aug 14 13:13:30 2013 -0400"
      },
      "committer": {
        "name": "Mike Klein",
        "email": "mtklein@google.com",
        "time": "Wed Aug 14 13:13:51 2013 -0400"
      },
      "message": "Remove comment that\u0027s only relevant for the underlying SkMatrix.  Matrix has constructors.\n\nbug: 8470620\n\nChange-Id: I00063dc03f752955c27c73e9c59b0496a1795924\n"
    },
    {
      "commit": "7fbbc3c9c3dc25c2bc78bba6fd267bfd99c96b2b",
      "tree": "d31b7e4d182ea124aabfe4d78715b4d932a31dea",
      "parents": [
        "b15b446f420b3ec69424dabcbcbc8cf019d6c8d6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 13 10:37:25 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Aug 13 10:37:25 2013 -0700"
      },
      "message": "Camera.applyToCanvas() now works with hardware canvases\n\nChange-Id: I7f06b2a74ccc1941d51e12a0417028e094c1b669\n"
    },
    {
      "commit": "790552b240c05d58407f7c14acba656b2e85c523",
      "tree": "b878263a391fa29323a3701e105d8e395fa08468",
      "parents": [
        "719c44e03b97e850a46136ba336d729f5fbd1f47"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 12 11:10:27 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 12 11:10:27 2013 -0700"
      },
      "message": "Update Bitmap.createBitmap() documentation\n\nChange-Id: Ic2efed6cc03c8b2c2d9810b7ab645b0b98b91e1f\n"
    },
    {
      "commit": "5af4edef084f4d3f94af71acca53c68929e82008",
      "tree": "ae0cf0a73f0f856ba0841691dce2ca5427b99e5e",
      "parents": [
        "5893a97cbf398ca3e1bff5444454343d94e25a4c",
        "41207bce2a13c77bf03a05524ba3b3c59f486cc0"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Aug 09 18:11:32 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 09 18:11:33 2013 +0000"
      },
      "message": "Merge \"Fix bug #10205316 CTS (KLP): android.graphics tests are failing\" into klp-dev"
    },
    {
      "commit": "003123004f7b23b3dc472d5c40b8c1a16df37a54",
      "tree": "974c2608d0f3f2477acb6da24b9a935f44952033",
      "parents": [
        "37ee68fc091f64e17c0ef29b123b782b6daecf16"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 08 19:11:20 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Aug 09 03:52:29 2013 +0000"
      },
      "message": "Remove an unnecessary allocation\n\nAlso remove dead code from OpenGLRenderer.cpp\n\nChange-Id: I7eb54ca19e77ee3c32f1fe9513a031e6b2e115cf\n(cherry picked from commit 5c7d5ab878b26f855175a3305a14ac12fcacf25e)"
    },
    {
      "commit": "41207bce2a13c77bf03a05524ba3b3c59f486cc0",
      "tree": "31362f8e5a466c91c83bd44c822ea3e9ae262d39",
      "parents": [
        "89d16f7597d9e03bf3cf9eb1ba91b590ab1ac892"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 08 19:11:34 2013 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 08 19:11:34 2013 -0700"
      },
      "message": "Fix bug #10205316 CTS (KLP): android.graphics tests are failing\n\n- fix null Shader case during copy\n\nRelated to https://googleplex-android-review.googlesource.com/#/c/336815/7\n\nChange-Id: I920d6bb181ddb92d6f771e5060fd1858430e71ad\n"
    },
    {
      "commit": "667fe1039feae068d3333de8fb7115313f4a517b",
      "tree": "cbe42efc3390b4f8bce6854573d7073e698b2dae",
      "parents": [
        "f6971c80fd413cad8e5333cd3184f41fcf64e14b"
      ],
      "author": {
        "name": "Jonathan Dixon",
        "email": "joth@google.com",
        "time": "Fri Aug 02 15:28:31 2013 -0700"
      },
      "committer": {
        "name": "Jonathan Dixon",
        "email": "joth@google.com",
        "time": "Thu Aug 08 17:22:48 2013 -0700"
      },
      "message": "Refactor Canvas.drawPicture() to delegate to Picture\n\nBug: 9814370\n\nTo allow WebView.capturePicture() to return a subclass, we need to\nensure the subclass is always consulted when being drawn into a canvas.\n\nChange-Id: Ia0357f95b6fafb3ac81e6bcfaef05739e619897a\n"
    },
    {
      "commit": "52a9a10b6b8c7b7a9f97777541841b94d4fd9754",
      "tree": "aaf72e50f157c69abc8be70991c16e93bef47fc4",
      "parents": [
        "0dff7064897afd4e07993bac28ae877aaeb1b5e3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 02 01:38:38 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 13:07:42 2013 -0700"
      },
      "message": "Clearly separate consumer and producer interfaces\n\nBug: 9265647\nChange-Id: Ic68e91788d0a05251e1d2fb9f9d4de403c7099bf\n"
    },
    {
      "commit": "f2ce9f994a0dba5e3d97b5d4ae97eddb0008b7b5",
      "tree": "996e5051375762b9b24f04ea788d6ec06f660b7d",
      "parents": [
        "f7d280396c3ae4d76915cadeb29df556d6cd8d38",
        "eab8e18d8f6f34a9d35fbb120148956789ad48a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 11:10:06 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 05 11:10:06 2013 -0700"
      },
      "message": "am eab8e18d: am 8a736129: Merge \"If graphics wants ASCII lowercasing, it needs to ask for it.\"\n\n* commit \u0027eab8e18d8f6f34a9d35fbb120148956789ad48a2\u0027:\n  If graphics wants ASCII lowercasing, it needs to ask for it.\n"
    },
    {
      "commit": "eab8e18d8f6f34a9d35fbb120148956789ad48a2",
      "tree": "4a4922eba29897176d62632b920a71b747c8fe90",
      "parents": [
        "c8911ddd486776662e09a6822d4929074d40024d",
        "8a736129faa9e41b5f33c42bbeae1f68cb42d38f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 05 11:07:13 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 05 11:07:13 2013 -0700"
      },
      "message": "am 8a736129: Merge \"If graphics wants ASCII lowercasing, it needs to ask for it.\"\n\n* commit \u00278a736129faa9e41b5f33c42bbeae1f68cb42d38f\u0027:\n  If graphics wants ASCII lowercasing, it needs to ask for it.\n"
    },
    {
      "commit": "b7645acfd929911adeeea44334a3168dd0a0cf8b",
      "tree": "277d7cc491f28b9fb8ca9bbbd7f253cf0919ece5",
      "parents": [
        "111fd86c7a60c069ec54a398130701211342fdcd",
        "7a600ff65fa79696a2668c7d33101b6ac6696f04"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 02 23:43:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 23:43:54 2013 +0000"
      },
      "message": "Merge \"graphics: Update ImageFormat#YUV_420_888 javadoc\""
    },
    {
      "commit": "7a600ff65fa79696a2668c7d33101b6ac6696f04",
      "tree": "5a338d417d4bbf41a97a25ade2f7df8858065c78",
      "parents": [
        "b8fc83f3ac7b26e9f98c80919c935458a9a540fb"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jul 31 16:46:10 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 02 16:39:03 2013 -0700"
      },
      "message": "graphics: Update ImageFormat#YUV_420_888 javadoc\n\n* Make it clear that the Y-plane is not interleaved for YUV_420_888\n* Make it clear that the U/V plane have the same stride\n* Make it clear what the order of Y/U/V planes is\n\nChange-Id: Id85d7c68e84382149dbf0e8b4e965ba2988326fe\n"
    },
    {
      "commit": "aeb60fb86fc572500239c6f6684d1eb71e3ae35b",
      "tree": "5d3d16485a73fe2aba3776c49404c290d24014f5",
      "parents": [
        "c67b2ed50226c4758d0fc1434d39f6add6a0a533"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 02 09:31:11 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Aug 02 09:31:11 2013 -0700"
      },
      "message": "If graphics wants ASCII lowercasing, it needs to ask for it.\n\nhttp://elliotth.blogspot.com/2012/01/beware-convenience-methods.html\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d58359\nChange-Id: I13c106985302335dbb15bb9176d35ec6b4546d4e\n"
    },
    {
      "commit": "3f5a90b2fbba2a83a8a2c5babd5d466a5e0ad2aa",
      "tree": "666fee2554ad0f795380960d425606804e8b7ede",
      "parents": [
        "851761574a775c6447ab2393d1ba42568ba08c1b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Mon Jun 24 19:22:25 2013 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 01 15:15:10 2013 -0700"
      },
      "message": "Add automatic Drawable mirroring capability when in RTL layout direction\n\n- default value is \"no mirroring\"\n- introduce android:autoMirrored as a new attribute for Drawable,\nBitmapDrawable, LayerDrawable, StateListDrawable and NinePatchDrawable\n- setting android:autoMirrored\u003d\"true\" means that the drawable will\nbe mirrored when the layout direction is RTL (right-to-left)\n- also fix an issue with ImageView drawable layout direction not\nupdated correctly when RTL properties were changed\n\nSee bug #7034321 Need Drawable RTL support\n\nChange-Id: If595ee5106c786f38e786d3a032e182f784a9d97\n"
    },
    {
      "commit": "851761574a775c6447ab2393d1ba42568ba08c1b",
      "tree": "48c22d3c0d8d618a1d62a32219544dc41c227fa9",
      "parents": [
        "930524ade21464a4f8cbbf80fed7039f4e813965",
        "e3c526f4f603e83c5fa8b9e399506b085f5648b7"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 01 21:50:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 21:50:14 2013 +0000"
      },
      "message": "Merge \"Fix Paint Shader copy\""
    },
    {
      "commit": "e3c526f4f603e83c5fa8b9e399506b085f5648b7",
      "tree": "33ef3d7f64d5ee6f85b3ab2b8899d6e74b12724f",
      "parents": [
        "5259ffba255b38728a20e28aa6ba029416d0e925"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Tue Jul 30 18:58:19 2013 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Aug 01 14:33:22 2013 -0700"
      },
      "message": "Fix Paint Shader copy\n\n- Paint.setClassVariablesFrom(Paint paint) was using the same Shader\nfor the copy as the initial Paint. Make sure that we are using a copy.\n- implement a copy() API for shaders\n\nSee bug #7034321 Need Drawable RTL support\n\nChange-Id: I4b9cee386edc72ad670723266333b85f4d2b0ab8\n"
    },
    {
      "commit": "5d3dff1d66f99fbd5bef9178e62d789119c02ad1",
      "tree": "f141b912bb1be372cc4f9627fab4a25f492f45bb",
      "parents": [
        "87d01e9e83f33651872b3f3b2a1492c58d3846b5",
        "86d3e03d381bff8c107e3def31cf37f4851f827c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 01 16:46:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 01 16:46:04 2013 +0000"
      },
      "message": "Merge \"Add missing alpha channel to built-in colors\""
    },
    {
      "commit": "86d3e03d381bff8c107e3def31cf37f4851f827c",
      "tree": "04f817e0c968cb25627dd5b77db3d28792ee4f87",
      "parents": [
        "84956d53f1e86b8c000f8994ea9040b71a30e321"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 01 09:43:26 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Aug 01 09:43:26 2013 -0700"
      },
      "message": "Add missing alpha channel to built-in colors\n\nChange-Id: I911c17b623513b2715668d0f91604b28c32a969a\n"
    },
    {
      "commit": "1e546815bbb736c50679a8aefc25f48561026fc5",
      "tree": "11a3b7106638c123d052d50ce3e2a1757e004cb4",
      "parents": [
        "3a6f25512c0a682b10961a5a7428e3393ffb0b75"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jun 25 14:25:17 2013 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Jul 31 15:50:47 2013 -0700"
      },
      "message": "Support RGBA fonts and bitmap fonts (and RGBA bitmap fonts)\n\nQuite a few things going on in this commit:\n\n- Enable bitmap strikes by default in Paint objects.\n\nThe SkPaint parameter that enables bitmap strikes was not previously\nincluded in DEFAULT_PAINT_FLAGS. This effectively disabled bitmap\nfonts. Oops! It\u0027s for the best, though, as additional work was needed\nin Skia to make bitmap fonts work anyway.\n\n- Complain if TEXTURE_BORDER_SIZE is not 1.\n\nOur glyph cache code does not currently handle any value other than 1\nhere, including zero. I\u0027ve added a little C preprocessor check to\nprevent future engineers (including especially future-me) from\nthinking that they can change this value without updating the related\ncode.\n\n- Add GL_RGBA support to hwui\u0027s FontRenderer and friends\n\nThis also happened to involve some refactoring for convenience and\ncleanliness.\n\nBug: 9577689\nChange-Id: I0abd1e5a0d6623106247fb6421787e2c2f2ea19c\n"
    },
    {
      "commit": "6d64d5ab84a66f98633acf740414a8848feaa14b",
      "tree": "b9f0097582aeefdb657d9b58688ece8bfbb99d1c",
      "parents": [
        "d608b0e97cc524deeae496f9a24edef6f29af03f",
        "84956d53f1e86b8c000f8994ea9040b71a30e321"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 31 00:54:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 31 00:54:25 2013 +0000"
      },
      "message": "Merge \"Add missing InsetDrawable.getDrawable() method\""
    },
    {
      "commit": "84956d53f1e86b8c000f8994ea9040b71a30e321",
      "tree": "d060acdb0c9837c055f488ce232b6cbc0fea12c2",
      "parents": [
        "8018c8db8221aa604b3c083e09d173cc27e53d83"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 13:01:40 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 13:01:40 2013 -0700"
      },
      "message": "Add missing InsetDrawable.getDrawable() method\n\nChange-Id: I216b0e8a327f495fd83ebac79013418dbae007b9\n"
    },
    {
      "commit": "2f1a2e423e0fbb64467d6fcfa4e82c6384f31210",
      "tree": "84d91887a953c9a0bf5ca6d1ca112c8ab82bc08f",
      "parents": [
        "39dd5a62ae4348e941c8351635e61dc065b2ced7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 25 17:12:05 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 30 11:37:31 2013 -0700"
      },
      "message": "Camera2 API: Rename package to android.hardware.camera2\n\nChange-Id: I77b7939e199f9fe8e12a59393c24cff08097448c\n"
    },
    {
      "commit": "56fbb6362b6a0f17804d33af913b720f21c884c5",
      "tree": "56d0e70409283ecdb358d367e58774fee1ce89ba",
      "parents": [
        "4d4a137bf5f861bce744c113744718066e1f214e",
        "8018c8db8221aa604b3c083e09d173cc27e53d83"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 17:53:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 30 17:53:05 2013 +0000"
      },
      "message": "Merge \"Add path ops API\""
    },
    {
      "commit": "8018c8db8221aa604b3c083e09d173cc27e53d83",
      "tree": "60cbc26ddde4fa65a476a7e869d88f358b734210",
      "parents": [
        "93d34a61dbdfd9ece9ac4a53d78e896638172895"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 29 19:17:59 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 30 10:51:24 2013 -0700"
      },
      "message": "Add path ops API\n\nPath ops can be used to combine two paths instances in a single path\nobject. The following operations can be used:\n\n- Difference\n- Reverse difference\n- Union\n- XOR\n- Intersection\n\nTo use the API:\n\nPath p1 \u003d createCircle();\nPath p2 \u003d createRect();\n\nPath result \u003d new Path();\nresult.op(p1, p2, Path.Op.DIFFERENCE);\n\nThis code will subtract the rectangle from the circle and generate\nthe resulting path in \"result.\"\n\nChange-Id: Ic25244665b6691a7df0b0002a09da73d937b553b\n"
    },
    {
      "commit": "d979208974d995438ebd51e8070eaeabf63461db",
      "tree": "6473cce070d055cf030782a06feb6395409890a8",
      "parents": [
        "bf36ee2b0c49241e073da14ee1e1a08b8550f3b9"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri Jul 26 20:24:34 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Mon Jul 29 22:09:08 2013 +0000"
      },
      "message": "Relax restriction on Colormatrix and add Add step.\n\nChange-Id: Iccb519bb40f58f02346b5c0a10c1378cb853e3f8\n"
    },
    {
      "commit": "cb92a8d9428c2e4a9f038cd5f10e9d61bf265cd4",
      "tree": "2a5edc119dc9c998cc8ff08cac53d17c1c2b1357",
      "parents": [
        "9fe5b550e11992f73213acc8a07c5614164eecda"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Jul 27 17:16:53 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Jul 27 17:16:53 2013 -0700"
      },
      "message": "fix SDK build\n\nChange-Id: I41c19740b8f0532dbd6184e13bae43a13aaa46e2\n"
    },
    {
      "commit": "e591b49de038a9942cbcc77540c03e85c96e3dcb",
      "tree": "3bc8b5ae1d6db61c137dac96d77777db2d28032f",
      "parents": [
        "d06db894b2b092e95fc19bf993bfc5bab7a486b1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 24 19:15:00 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 19:33:54 2013 -0700"
      },
      "message": "single buffer mode for SurfaceTexture\n\nBug: 9891035\nChange-Id: Ib9cc2b64f7ff3c084ef1d7db442db8e7a24a923d\n"
    },
    {
      "commit": "9f213c8b648c06e781911c12d6c12f6a6606f6d2",
      "tree": "578f1ec578705834318daeb6e9e5f879c5109087",
      "parents": [
        "54e5f0eb7634c42b702f8ac0bb7cc2a48f0bc14c",
        "2ca204e4c0ba805c8fa0db79eeac9608d01cf5b4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 20:56:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 26 20:56:23 2013 +0000"
      },
      "message": "Merge changes I487d4eef,Ia750811f\n\n* changes:\n  get rid of PixelFormatInfo and simplify things\n  get rid of PIXEL_FORMAT_A_8\n"
    },
    {
      "commit": "2ca204e4c0ba805c8fa0db79eeac9608d01cf5b4",
      "tree": "f5619d2405b25c23a516a899649da4ec395ec980",
      "parents": [
        "6f7b58917104916ee6afd6f246c251c1d7a2102a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 19:25:10 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 19:25:10 2013 -0700"
      },
      "message": "get rid of PixelFormatInfo and simplify things\n\nChange-Id: I487d4eef7db0095ace4babf5bb100a8769711257\n"
    },
    {
      "commit": "a06cba19c98c15547d2dc361359cf6f955ec2588",
      "tree": "d732b8c572bcaf0e1c720c5fba2513ebe6beece9",
      "parents": [
        "109c9b57f6be4c01e7c54ae04741c887f28de008",
        "8d9a4bd1eb09cc795bf96c4f3a2824f9642c70e4"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Jul 24 16:26:43 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 24 16:26:43 2013 -0700"
      },
      "message": "am 8d9a4bd1: am 174dd066: Merge \"remove link to renderscript support library\" into jb-mr2-ub-dev\n\n* commit \u00278d9a4bd1eb09cc795bf96c4f3a2824f9642c70e4\u0027:\n  remove link to renderscript support library\n"
    },
    {
      "commit": "d2d43b9647aa02e4f114d993364d7c686d99187b",
      "tree": "ca9198dda86220c9f5167b3ba7f42771243b2c3f",
      "parents": [
        "f213415175ec83df7b39089d559eb9d02b72883a"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Jul 23 21:08:30 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Jul 23 21:08:30 2013 -0700"
      },
      "message": "remove link to renderscript support library\n\nChange-Id: If8e693239b92058c0a2928e0811870bec3a150fe\n"
    },
    {
      "commit": "9c2cde0583d02ba7551877dbe7a5ecaee6defb56",
      "tree": "ec45e43427d5009257fc08df8000b35e4d800ba6",
      "parents": [
        "7bfddb5434736a26fa9b32d7cd1741067169ae74"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 23 14:12:35 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 23 14:14:45 2013 -0700"
      },
      "message": "Use IllegaleStateException to be consistent with rest of Bitmap class\n\nChange-Id: Idd1c77f92eafa8a43619d27a9567382447540e5f\n"
    },
    {
      "commit": "d84feebba428d2f5adc021353ae24d3d2737220a",
      "tree": "1cec56a22068031bffe22a659aa2f969c40f33e5",
      "parents": [
        "4908d181ca8c48e9866474ffe7cab68719cdb833",
        "e32632682ca9207bd247ca27012cf670b5c23f54"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Jul 20 01:03:21 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jul 20 01:03:22 2013 +0000"
      },
      "message": "Merge \"update to new Consumer APIs\""
    },
    {
      "commit": "ef5498edf62eb439b4c3f980422c3513e23b5ee9",
      "tree": "c77eb5743dba0b53a1dda9766e240477621843b8",
      "parents": [
        "350503fba389a753cbb92864c36864830fdd8efe",
        "c84d203da21c3ae3ded94c79c035d41b27809b3b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 18 22:55:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 18 22:55:44 2013 +0000"
      },
      "message": "Merge \"Add reconfigure method to Bitmap\""
    },
    {
      "commit": "c84d203da21c3ae3ded94c79c035d41b27809b3b",
      "tree": "ba05e5fbfa04ce5a40d760fd5a70edc065f4574c",
      "parents": [
        "e77d6dd94371b97a8fac21a60b804b4f99559eab"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 12 19:35:52 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 17 12:08:01 2013 -0700"
      },
      "message": "Add reconfigure method to Bitmap\n\nbug:9797004\n\nGrants a means to reuse a bitmap\u0027s allocation for different\nwidth/height/Config without going through\nBitmapFactoryOptions.inBitmap\n\nChange-Id: Ib62319f3bd96c451fc1636288adf06a8275b4e3d\n"
    },
    {
      "commit": "e32632682ca9207bd247ca27012cf670b5c23f54",
      "tree": "0026abe147d61ef6d42d476606ea5712f0f35cd4",
      "parents": [
        "5ab422bfa34f0fd64b6bef25287e7250f80de4ba"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 16 22:54:56 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 16 23:14:24 2013 -0700"
      },
      "message": "update to new Consumer APIs\n\nChange-Id: I8649f3add40e0aeeeb0396b98e2cb93312e8e990\n"
    },
    {
      "commit": "4e7b772b733593fbe25c733e95b8dcea293234b6",
      "tree": "26acbca3bc0a543bf90655412f04d3b4ae86fb0b",
      "parents": [
        "d91f8af40b8f9eb8752c432315c619e90d095b6a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 16 13:47:01 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 16 14:52:55 2013 -0700"
      },
      "message": "Fix crashes in setMatrix() and concat()\n\nsetMatrix() was crashing in native code, only with hw acceleration on.\nconcat() would throw a NullPointerException. It now ignores null matrices.\n\nChange-Id: Iebd8b410a957d2ba501570c6fbb3f680ff4a1a23\n"
    },
    {
      "commit": "787e35793f47abdb6cc10f328cd58d362c7bd250",
      "tree": "87e0bf94652a3164d0558817e9a41a67d3031728",
      "parents": [
        "5fade8c69aef621312232ef0647502d7a63990b9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 11 17:37:31 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 11 17:37:31 2013 -0700"
      },
      "message": "Trace bitmaps decoding\n\nAlso remove dead code\n\nChange-Id: Ie931b21858ccbe6ee4def54caf028fd2aed23317\n"
    },
    {
      "commit": "e68720ee154cc98fb6067cc63d333e3f809244dc",
      "tree": "365d205ceab8221512ac4e16d3e69d5bf3da327b",
      "parents": [
        "68389dee4e6dbb46d12096ea9a9565be795e0bd1",
        "73b81e75dfcdba048f294cf154ed9005a6581bd4"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Jul 10 16:44:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 10 16:44:40 2013 +0000"
      },
      "message": "Merge \"Minor fixes to android.graphics.Matrix\""
    },
    {
      "commit": "73b81e75dfcdba048f294cf154ed9005a6581bd4",
      "tree": "67c9def4490be3ee59fadba9ba817664bb1829f0",
      "parents": [
        "4a9095007ddf2ec763ad7133e9ac8c62c3f53a4e"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Jul 09 16:33:18 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Jul 09 16:45:20 2013 -0700"
      },
      "message": "Minor fixes to android.graphics.Matrix\n\nTweaked equals() and finalize(), introduced trivial hashCode().\n\n(Also picked up a handful of automatic trailing-space removals.)\n\nBug 9756081\n\nChange-Id: I4639cf1e970a16179fa6c0d24785f4d0dfbe58ed\n"
    },
    {
      "commit": "0c20c3898a533b7b76f60827cb6ea02e17c5953d",
      "tree": "15a488db02872005937082b918bfe108eeae1282",
      "parents": [
        "e969964c80a20b2d968b4ee54495176c9049d3e3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 02 10:48:54 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jul 08 11:08:02 2013 -0700"
      },
      "message": "Use global references for Bitmap AndroidPixelRefs\n\nbug:9621717\n\nBecause we\u0027re no longer holding onto Bitmaps Java side during\nDisplayList lifetime, use global refs to keep the backing byte arrays\naround.\n\nAdds back bitmap buffer passing + native ref management removed by\n3b748a44c6bd2ea05fe16839caf73dbe50bd7ae9\n\nAdds back globalRef-ing removed by\nf890fab5a6715548e520a6f010a3bfe7607ce56e\n\nChange-Id: Ia59ba42f05bea6165aec2b800619221a8083d580\n"
    },
    {
      "commit": "ec6221e555ddddc7dd8ff7d01cab1cee98ddbb91",
      "tree": "cd21704c3b8b6d0cd5ba9674722575bed0965812",
      "parents": [
        "a3664247c701d975ebda9da9f0412bc49d3b6fae",
        "d93fdb77d84aa3f2c427034cf17e72941f3c3418"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Jun 27 22:45:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 27 22:45:26 2013 +0000"
      },
      "message": "Merge \"Add 2,3 vectors to allowed intrinsic list.\""
    },
    {
      "commit": "d93fdb77d84aa3f2c427034cf17e72941f3c3418",
      "tree": "9ba01cdac44d1b0d5571940b09e07c057da0ffee",
      "parents": [
        "7337fb460898c93971dd03f0a0a0d0214948b8f3"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Jun 27 15:42:30 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Thu Jun 27 15:42:30 2013 -0700"
      },
      "message": "Add 2,3 vectors to allowed intrinsic list.\n\nChange-Id: Iafd90ef4337076ed9d1e335c16272a0517f846b3\n"
    },
    {
      "commit": "e3b0a0117a2ab4118f868a731b238fe8f2430276",
      "tree": "a4a6ac3783ace541cd35a0f9d3868af6d2bf97b7",
      "parents": [
        "89dc02a9bed818cc6f5296c97eb504ccb010db42"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 26 15:45:41 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jun 26 17:15:08 2013 -0700"
      },
      "message": "Refcount 9-patches and properly handle GC events\n\nThis change adds refcounting of Res_png_9patch instances, the native\ndata structure used to represent 9-patches. The Dalvik NinePatch class\nnow holds a native pointer instead of a Dalvik byte[]. This pointer\nis used whenever we need to draw the 9-patch (software or hardware.)\n\nSince we are now tracking garbage collection of NinePatch objects\nlibhwui\u0027s PatchCache must keep a list of free blocks in the VBO\nused to store the meshes.\n\nThis change also removes unnecessary instances tracking from\nGLES20DisplayList. Bitmaps and 9-patches are refcounted at the\nnative level and do not need to be tracked by the Dalvik layer.\n\nChange-Id: Ib8682d573a538aaf1945f8ec5a9bd5da5d16f74b\n"
    },
    {
      "commit": "f296dca95f09be9832b5dcc79717986525d2b6cb",
      "tree": "7fda09c7b293823c59d63c08370369c45690a95d",
      "parents": [
        "066bdcfe83e49ad4bfb97670521c1b7e7297ba53"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 24 14:33:37 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jun 24 16:45:41 2013 -0700"
      },
      "message": "(Small) 9patch drawing improvements\n\nSave a bit of memory in meshs generated from native code\nAvoid an extra if/else when drawing with hardware accelration on\n\nChange-Id: I31a4550bde4d2c27961710ebcc92b66cd71153cc\n"
    },
    {
      "commit": "ff4adde5737be08d3e2d03fbe588c591d27d4a74",
      "tree": "f5eeffaf457f564d577313ecbe440c32cfbc7f3c",
      "parents": [
        "4b77dbb2068b357a09db86102a391d27ffd84a19"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jun 10 08:47:27 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jun 19 19:35:38 2013 -0700"
      },
      "message": "Generate PDF from Canvas.\n\nThis change adds simple APIs that enable an Android application\nto generate a PDF document by drawing content on a canvas.\n\nChange-Id: Ibac93d7c37b01a376ce7c48238657d8c7698d588\n"
    },
    {
      "commit": "9274384ff0087300ce7c9758c800f071dcee285b",
      "tree": "5793d16de261eeef5081c5a3c384aebeab35b10d",
      "parents": [
        "1a3edb00c5d08f9b82238667adb434fe50cb3f99"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 18:52:42 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 18:52:42 2013 -0700"
      },
      "message": "Fix docs\n\nChange-Id: Ie6563f633481951d97f319aefd282b15c049e281\n"
    },
    {
      "commit": "1a3edb00c5d08f9b82238667adb434fe50cb3f99",
      "tree": "bbeefd27a3a3dd473947fe18f6a43a394222cdea",
      "parents": [
        "048c978ae599ecc9e00d68040ae9fd8a9d46df64"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 18:23:37 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 18:23:37 2013 -0700"
      },
      "message": "Update histogram docs.\n\nChange-Id: I6cfedb5cac459befb083f352f43ed33f4418145a\n"
    },
    {
      "commit": "048c978ae599ecc9e00d68040ae9fd8a9d46df64",
      "tree": "c74801589345f96259bf6b66a83b50d46d41d365",
      "parents": [
        "8ace2acbf16deb300a58e13fab5bbd28ff2d808c"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Mon Jun 17 18:35:31 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 17:39:10 2013 -0700"
      },
      "message": "Allow single channel and float convolve.\n\nChange-Id: If448ea2ae38de2f8b95fc884ea0dbf8222964012\n"
    },
    {
      "commit": "8ace2acbf16deb300a58e13fab5bbd28ff2d808c",
      "tree": "2942e76f86149e365d1e6b6277bf1556a7f240f9",
      "parents": [
        "109c46b8eaff88d7f0106ec9ca059f9cd09b0664"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 17:34:34 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 17:34:34 2013 -0700"
      },
      "message": "Add support for vec2 histogram\n\nChange-Id: I30ab758a44485a8ea30043c4cd782c3560074c58\n"
    },
    {
      "commit": "109c46b8eaff88d7f0106ec9ca059f9cd09b0664",
      "tree": "fd4d81a6f254883f179d2a4b491c397a7f0c0479",
      "parents": [
        "a7cfb4f82751a4f4166006c1725758e8f9bb5c5c",
        "01e9f90576f356905b392e3bbff0ad442988180f"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Wed Jun 19 00:26:38 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 19 00:26:38 2013 +0000"
      },
      "message": "Merge \"Add histogram intrinsic\""
    },
    {
      "commit": "01e9f90576f356905b392e3bbff0ad442988180f",
      "tree": "f07d2df48858d4bb52e96b9b0895088c662917cb",
      "parents": [
        "54a5338b7caed808d1c613d7f744ed4376ec65ed"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 11:53:03 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Tue Jun 18 11:53:03 2013 -0700"
      },
      "message": "Add histogram intrinsic\n\nChange-Id: I67bcaaef033d8770047923e8243e739010238539\n"
    },
    {
      "commit": "1eb818e5b3481ee1c9722ad6b7bd925afdadb441",
      "tree": "b0c0f5c7c2f3e8d99882c2ad9c0b32abd6375543",
      "parents": [
        "b31e370a941e8ed4e6393f32fa5356c8c84efa7a"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Jun 14 09:36:02 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Jun 18 10:13:18 2013 -0700"
      },
      "message": "Add Y8 and Y16 image format\n\nThese APIs are hidden. Also correct the value of RAW_SENSOR.\n\nBug: 9254294\nChange-Id: Ic6271f5f6bfcfdd8b545d69a9a2154241c34d73b\n"
    },
    {
      "commit": "f390f770ee570f1f4def41b165cb9492e381be40",
      "tree": "10d548040dda6512ca10f93caa0e163cb944a61b",
      "parents": [
        "a6954f7e12b673f8b9cb29549c3136be6e64e693"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jun 13 15:11:16 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jun 13 15:11:16 2013 -0700"
      },
      "message": "Postpone creating new drawables for DrawableContainerState.\n\nWhen creating a DrawableContainerState from a constant state, calls to\nConstantState.newDrawable() are postponed and made as they are needed.\n\nBug: 9280861\nChange-Id: I03c93a43ee00aca3ff618d66d7f507f1722538d1\n"
    },
    {
      "commit": "b2675542c2f414154125b534767ae0903fba581e",
      "tree": "0687fb11a57bba077f88d653d2789f3ba0c51a63",
      "parents": [
        "8c4a8243c77bcbd434fb30587be2feffd2835728"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Dec 12 13:29:45 2012 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 07 21:29:45 2013 +0000"
      },
      "message": "Initial commit of new camera API, mostly just the interface.\n\n- New core API classes in android.hardware.photography\n- android.media.Image and android.media.ImageReader classes for\n  application access to direct hardware image buffers.\n- Additions to android.graphics.ImageFormat to describe new image\n  types needed by new camera API.\n- Some documentation included; very little implementation.\n\nBug: 9111736\nChange-Id: I0680f35944d1cb8845b7dc0c67edc8c0f0864573\n"
    },
    {
      "commit": "81056427e8d710acdf471a2d6a91bc0298357cce",
      "tree": "a218f22a93c84eeb4d0e54ad3d5c3d74f25cf2a6",
      "parents": [
        "a4d04291d4daaed385606890b5fd901ce6cf888a",
        "f3187b7df158d2de36955ddcc666ba4b8544a2ce"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 07 20:14:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 07 20:14:58 2013 +0000"
      },
      "message": "Merge \"Remove unnecessary Rect, better reuse of NinePatch objects\""
    },
    {
      "commit": "f3187b7df158d2de36955ddcc666ba4b8544a2ce",
      "tree": "2fb08b77de183ae78bdd5814f4252c6ab25fedad",
      "parents": [
        "e50848bfba085e6836a5526dfa64261d1ee46e64"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 07 12:17:11 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 07 12:17:11 2013 -0700"
      },
      "message": "Remove unnecessary Rect, better reuse of NinePatch objects\n\nCloning drawables (which happens a lot) was creating copies of NinePatch\nobjects, which would cause the hardware renderer to generate more meshes\nthan necessary. Also avoid keeping a String we don\u0027t need (it was interned\nbut still.) Last but not least, remove 1 RectF per NinePatch in the system.\n\nChange-Id: If4dbfa0c30892c9b00d68875e334fd5c2bde8b94\n"
    },
    {
      "commit": "34bff87b32a10f6267e76a7de0b287eb6a4633f9",
      "tree": "5a2f1976d69be51868c5f2311258a06f94140699",
      "parents": [
        "c840a13342d02a6197f79396349885f1cf7c437c",
        "905e8246ef0bd20ee28d81ce3da0c5e5fc8e3913"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jun 06 21:04:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 06 21:04:49 2013 +0000"
      },
      "message": "Merge \"Add support for post-decode density scaling with reuse\""
    },
    {
      "commit": "b33d778e9c0bcc68662d0457561cbc416b5b6f3c",
      "tree": "ec383d004c763963bf4e4425b4cd9f1fdda3e686",
      "parents": [
        "71ce4876e5051cc2cff1dd4fd55a4899523af8a2",
        "72146433322588c1116ee06c27ac758ad09d869c"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jun 06 17:36:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 06 17:36:40 2013 +0000"
      },
      "message": "Merge \"Deprecate DrawableStateList.getChildren() and add getChild().\""
    },
    {
      "commit": "1e97ceb46991183a9286bb5ed8308e718e346c1f",
      "tree": "91ced8778a590010dcf54b3c5639ba2db79cb31f",
      "parents": [
        "d0d3ca95489d93666045ac1c2489ad41be7548f6",
        "7e8c03c0fed64c73a4f0cfb96a2c6905b348a143"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jun 06 16:13:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 06 16:13:30 2013 +0000"
      },
      "message": "Merge \"Support all formats for BitmapFactory.Options.inBitmap\""
    },
    {
      "commit": "72146433322588c1116ee06c27ac758ad09d869c",
      "tree": "57c43e9b49fb268371e2f3b935a376665c0d689d",
      "parents": [
        "83ad439c5e0f9b505bcc9a1cfbdd5ce4da1d8a7b"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Jun 05 17:12:19 2013 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Jun 05 17:12:19 2013 -0700"
      },
      "message": "Deprecate DrawableStateList.getChildren() and add getChild().\n\nMoves from exposing the internal structure of a drawable state list\nto only exposing the data. Adds getCapacity() and mutate() as\npackage-private APIs to support various drawable subclasses.\n\nChange-Id: Id08743f979287e1a305f069ccc3c0085a7da6f7b\n"
    },
    {
      "commit": "905e8246ef0bd20ee28d81ce3da0c5e5fc8e3913",
      "tree": "67de8e39d179195e9366316f67ae677dc9dfe586",
      "parents": [
        "7e8c03c0fed64c73a4f0cfb96a2c6905b348a143"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 05 09:59:05 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 05 16:09:31 2013 -0700"
      },
      "message": "Add support for post-decode density scaling with reuse\n\nAlso, simplifies scaling path, removing java variant - we always do\nthe scaling in native, which has the benefit of avoiding non-native\ntemporary allocations\n\nChange-Id: I39c2219f5d77a267719629704e65611cf4388a82\n"
    },
    {
      "commit": "3f4579fbe44d95c7b0e5850446b929d70a4a85c5",
      "tree": "2825ddd8b776f60153208774f243b4ecab24ce27",
      "parents": [
        "894e1d99149a19de9577a4a62f00ad8e52c21c37",
        "379641a7ef09e1d7fab34d3027c5809fb2bc21ad"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Wed Jun 05 13:53:28 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 05 13:53:28 2013 -0700"
      },
      "message": "am 379641a7: am ea45ab6f: Merge \"Improve RS documentation.\" into jb-mr2-dev\n\n* commit \u0027379641a7ef09e1d7fab34d3027c5809fb2bc21ad\u0027:\n  Improve RS documentation.\n"
    },
    {
      "commit": "c11e25c4e653124def1fb18e203b894f42106cbe",
      "tree": "56827889775e5d4cf96f5fa2946ecf5484f3f540",
      "parents": [
        "aafed1df0404e2fb64c1adeb127dc7f300a2c07b"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Apr 09 11:01:01 2013 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Wed Jun 05 11:28:45 2013 -0700"
      },
      "message": "Improve RS documentation.\n\nbug 8570568\nChange-Id: I465fcc8ec3e2cc892dc3cb0067aacf5224338102\n"
    },
    {
      "commit": "7e8c03c0fed64c73a4f0cfb96a2c6905b348a143",
      "tree": "1b73a524fd82b8c0568293976168ad2a50bb8680",
      "parents": [
        "3bf4fa4b161342ac94e97844c7af0982f4a2758d"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 03 13:53:36 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 03 18:14:44 2013 -0700"
      },
      "message": "Support all formats for BitmapFactory.Options.inBitmap\n\nbug:9194265\n\nInstead of using custom code in skia to avoid allocations, use a\ncustom allocator that reuses the allocations from the inBitmap.\n\nIn order to avoid inconsistent state, the decode is done in a\nseparate bitmap and swapped into the existing native bitmap.\n\nEventually, we\u0027d like to support inScaled\u003dtrue completely avoiding\njava allocations.\n\nChange-Id: Ic4a2f2373b100a80a32c1cdebb7bcb726711c8a7\n"
    },
    {
      "commit": "1b1c39d773e7ebf8cb2dca62b3ed1a0727c268e1",
      "tree": "76a2adcea97b09b21f6f5364a0b9236514c3c7c4",
      "parents": [
        "17b2a01ded6a619d73c815c82ed6b3085800437b",
        "d19068a7d28d129f5a1a1be478e972b40cea04eb"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Sat Jun 01 09:51:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 01 09:51:46 2013 -0700"
      },
      "message": "am d19068a7: am 413adc92: Merge \"Fix free after use with createFromBitmapResource\" into jb-mr2-dev\n\n* commit \u0027d19068a7d28d129f5a1a1be478e972b40cea04eb\u0027:\n  Fix free after use with createFromBitmapResource\n"
    },
    {
      "commit": "3ece2f3268a0629383b37604d0712e3f48968ad9",
      "tree": "0776dd1e47ec6f79da05851518d4a893a731ad49",
      "parents": [
        "0dc7891ccb9698aa5d1f8b40aff797184c0544aa"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri May 31 14:00:46 2013 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "jsams@google.com",
        "time": "Fri May 31 14:01:04 2013 -0700"
      },
      "message": "Fix free after use with createFromBitmapResource\n\nBug 9227350\n\nChange-Id: Iee7610a9bf3d9d1baf14b968aed2a7d0876d2af7\n"
    },
    {
      "commit": "54999da4b6aaf0167f37f0eec987a670254b775f",
      "tree": "56ab442f1a6dcd30a5f222237ba445a365843edb",
      "parents": [
        "c648ed7303c7a0cfc8ad9c2f7eb16370d57f804a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 30 17:32:49 2013 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu May 30 17:34:27 2013 -0700"
      },
      "message": "Remove MipmapDrawable\n\nIt\u0027s a hidden API that nobody uses.\n\nChange-Id: Ie0ecbc45cd191a595e53fe8765defe6f2aa7e3f6\n"
    },
    {
      "commit": "9f58361e98be7386a4eadd3aa254e9b7d09d0a3b",
      "tree": "cafe64dd6fb1b45e05ba069e16f7da2875fa8dc3",
      "parents": [
        "0efd4f0215f1df1207b67240d7a52b1da6af43c8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon May 20 18:13:47 2013 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 28 13:50:33 2013 -0700"
      },
      "message": "Support larger bitmaps in BitmapFactory.Options.inBitmap\n\nbug:8121994\n\nAdds a new distiction between bitmap size and the allocation\n(pixel ref/buffer) used to store its data.\n\nBitmapFactory.inBitmap will allow a bitmap to be reinitialized with\nnew data if the bitmap being decoded is (after sampleSize) equal or\nsmaller.\n\nChange-Id: I747750a735c858882df3af74fca6cdc46f2a9f81\n"
    },
    {
      "commit": "ccccc44b13a5e5407fb87461d33a5db9672499c5",
      "tree": "c5ff24ba0ccd56affa3cc3fbd7002232e3ddfd36",
      "parents": [
        "2e39f5c5cb2eac59b067b68a93b5c454b97a5127",
        "ac629ee86d9e60e35098d8e731a35fc36b3bf3d5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 24 17:42:41 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 24 17:42:41 2013 -0700"
      },
      "message": "am ac629ee8: am 529a9e39: Merge \"TransitionDrawable should not become a LayerDrawable Bug #9057757\" into jb-mr2-dev\n\n* commit \u0027ac629ee86d9e60e35098d8e731a35fc36b3bf3d5\u0027:\n  TransitionDrawable should not become a LayerDrawable Bug #9057757\n"
    },
    {
      "commit": "529a9e391e386aac37ea722d2517d376968b3d31",
      "tree": "20b9a45d872044b3332ff22ea83a5a1ce2bf48ea",
      "parents": [
        "eebec7b1fe68cef9c4feed1f56af2592b402a629",
        "90e10cc58690678937575b54e1b20b899445d0e4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sat May 25 00:38:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 25 00:38:26 2013 +0000"
      },
      "message": "Merge \"TransitionDrawable should not become a LayerDrawable Bug #9057757\" into jb-mr2-dev"
    }
  ],
  "next": "90e10cc58690678937575b54e1b20b899445d0e4"
}
