)]}'
{
  "log": [
    {
      "commit": "0c7d077e9a35f02bbde08eeb19cf3b83aeafaf10",
      "tree": "310cd6806da3455675f2ebf8fa3336de2b8ffe31",
      "parents": [
        "cec7eb1c079331ba38ed4472abe26a55d6427324",
        "fde2ca180ea63ebd314770ec55b97e0a3c5a0788"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Sep 12 20:41:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 12 20:41:07 2010 -0700"
      },
      "message": "Merge changes I68379740,I9053218f\n\n* changes:\n  MediaFile: Add support for some popular non-media file types.\n  Media scanner support for tracking files of arbitrary type.\n"
    },
    {
      "commit": "c37255d5d0fd9e0ec02b0d7cb5c4b235e200d367",
      "tree": "6feb14e577a8ed66bf2c2afe6b39f47246b9cf49",
      "parents": [
        "6d000d4eb733fc6ad7fcd27a4022a41f8433306d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Sep 10 14:47:36 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Sep 12 23:21:44 2010 -0400"
      },
      "message": "Media scanner support for tracking files of arbitrary type.\n\nThe native media scanner no longer filters files based on file extension.\nAudio, video, image and playlist files are handled as before, but non-media\nfiles are now inserted into the \"files\" table, which was originally added\nto support MTP.\n\nChange-Id: I9053218fb6d2671a3bb181405c34442b94678afc\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "b3787d57fffbb898f4767f7a94031cafe974a0b0",
      "tree": "305041731ad251326cd7e6c2a98500253ada83f9",
      "parents": [
        "2f761760459fe27c8e9f96569bb7f28fc5b58bab",
        "0f0541e40cfef51eb5c3769e53c1aa853b53aaf6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 12 17:15:19 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 12 17:15:19 2010 -0700"
      },
      "message": "am 0f0541e4: am b88102f5: Input dispatcher ANR handling enhancements.\n\nMerge commit \u00270f0541e40cfef51eb5c3769e53c1aa853b53aaf6\u0027\n\n* commit \u00270f0541e40cfef51eb5c3769e53c1aa853b53aaf6\u0027:\n  Input dispatcher ANR handling enhancements.\n"
    },
    {
      "commit": "0f0541e40cfef51eb5c3769e53c1aa853b53aaf6",
      "tree": "9f7ba67999b459df9ac19b6df6b5712da4163a13",
      "parents": [
        "7d5c0e660e52888f986acef2cecde8ddc9ca26c8",
        "b88102f5b7e51552a3576cf197b4c8cf96f193d1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 12 17:05:38 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 12 17:05:38 2010 -0700"
      },
      "message": "am b88102f5: Input dispatcher ANR handling enhancements.\n\nMerge commit \u0027b88102f5b7e51552a3576cf197b4c8cf96f193d1\u0027 into gingerbread-plus-aosp\n\n* commit \u0027b88102f5b7e51552a3576cf197b4c8cf96f193d1\u0027:\n  Input dispatcher ANR handling enhancements.\n"
    },
    {
      "commit": "b88102f5b7e51552a3576cf197b4c8cf96f193d1",
      "tree": "c714dce33893a048f42a36e78b25dc0bc971b1c3",
      "parents": [
        "11fe181e16501103d7c0f70344661ea2ef5d3df9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 08 11:49:43 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 12 16:52:03 2010 -0700"
      },
      "message": "Input dispatcher ANR handling enhancements.\n\nThis change is essentially a rewrite of the main input dispatcher loop\nwith the target identification folded in.  Since the input dispatcher now\nhas all of the window state, it can make better decisions about\nwhen to ANR.\n\nAdded a .5 second deadline for processing app switch keys.  This behavior\npredates Gingerbread but had not previously been ported.\n\nFixed some timing inaccuracies in the ANR accounting that could cause\napplications to ANR sooner than they should have.\n\nAdded a mechanism for tracking key and motion events that have been\ndispatched to a window so that appropriate cancelation events can be\nsynthesized when recovering from ANR.  This change helps to keep\napplications in sync so they don\u0027t end up with stuck buttons upon\nrecovery from ANRs.\n\nAdded more comments to describe the tricky parts of PollLoop.\n\nChange-Id: I13dffca27acb436fc383980db536abc4d8b9e6f1\n"
    },
    {
      "commit": "522632cde516001429549c60bd570c399ffad800",
      "tree": "6777277e2e606f9580282ac1ce0670bdf382e8c0",
      "parents": [
        "5976d24d6fad2a0d97a7d9ad31f1ceac15a2ea94"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 10 15:45:57 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 10 18:01:46 2010 -0700"
      },
      "message": "Exposing specific profile levels + hasProfile().\n\n- Exposing the specific resolution profile levels\n  QUALITY_{QCIF,CIF,480P,720P,1080P} and the new time lapse profiles\n  QUALITY_TIME_LAPSE_{LOW,HIGH,QCIF,CIF,480P,720P,1080P}\n- Unhiding the hasProfile() function used to test if a given profile exists.\n\nChange-Id: I5d8b9e1ba61718f304235e76d85244e428e68643\n"
    },
    {
      "commit": "55d39f20660d3c619f8342bbee4bbd11a30de8ba",
      "tree": "6e1fc0886985e4b05580c540e34d45216a93288a",
      "parents": [
        "795155ae42942b0eaa2aa81212a41722ca21b2fc",
        "9d619542bea7d4c376a5a8b4a55c795a796adef3"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 10 15:04:17 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 10 15:04:17 2010 -0700"
      },
      "message": "Merge \"Adding hasProfile.\""
    },
    {
      "commit": "35c8b532e576abc50fe7cdb42db0e22ccb1c7390",
      "tree": "40bec899e72afc0f48ea1fdcccf0fbdf101704ca",
      "parents": [
        "bcd3387eed8910c540d92f26fb6680e9e0ce0588",
        "4af0dfd6cbc13fa6a89ec1430cbe6f619cd64d8a"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 10 14:26:45 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 10 14:26:45 2010 -0700"
      },
      "message": "Merge \"Added specific resolution and time lapse profiles.\""
    },
    {
      "commit": "9d619542bea7d4c376a5a8b4a55c795a796adef3",
      "tree": "925230ba48a7fec87d014def9eee6cdc317b004b",
      "parents": [
        "4af0dfd6cbc13fa6a89ec1430cbe6f619cd64d8a"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Sep 09 16:25:08 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 10 14:22:11 2010 -0700"
      },
      "message": "Adding hasProfile.\n\n- Added hasProfile to CamcorderProfile and JNI.\n- Added hasCamcorderProfile to MediaProfiles.\n- using android.hardware.Camera.CAMERA_ID_DEFAULT for default camera\n  in get().\n\nChange-Id: Ib57bb49ae79492d7cbc0ec6c7b6efcbf74f80013\n"
    },
    {
      "commit": "4af0dfd6cbc13fa6a89ec1430cbe6f619cd64d8a",
      "tree": "aaa4599e3227fe74ca166cfd39d38c1fd62d19ea",
      "parents": [
        "4a857e620fecd91d051d8e58f573b5ff30d81aaf"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Sep 06 15:59:02 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 10 14:22:08 2010 -0700"
      },
      "message": "Added specific resolution and time lapse profiles.\n\n- Added enums QUALITY_{QCIF,480P,720P,1080P}\n  QUALITY_TIME_LAPSE_{LOW,HIGH,QCIF,480P,720P,1080P} in CamcorderProfile\n  and corresponding ones in MediaProfiles.\n- Added functions createDefaultCamcorderTimeLapseLowProfile,\n  createDefaultCamcorderTimeLapseHighProfile to set default values.\n- Moved javadoc for constants to the get() function.\n\nChange-Id: Ib8b3f8d29395dff77a397d1e6b44cfaf8c481d4d\n"
    },
    {
      "commit": "3d6b009db124615a09e2c6dcf25bf8352f6aaca9",
      "tree": "fd62f638908e2c4828a7e42a93912e492c588cc3",
      "parents": [
        "200c13d37fb394c218a3824c428a116207266316",
        "09f1e2b2151ea18c05b9138a0a5cb63af18ea373"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Sep 10 11:29:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 10 11:29:10 2010 -0700"
      },
      "message": "am 09f1e2b2: resolved conflicts for merge of 56aa3c76 to gingerbread-plus-aosp\n\nMerge commit \u002709f1e2b2151ea18c05b9138a0a5cb63af18ea373\u0027\n\n* commit \u002709f1e2b2151ea18c05b9138a0a5cb63af18ea373\u0027:\n  Initial contribution from Sony Corporation.\n"
    },
    {
      "commit": "09f1e2b2151ea18c05b9138a0a5cb63af18ea373",
      "tree": "a8867b197b5f31b9fc3d59dc724ffc9f1e43f3b3",
      "parents": [
        "94db0238a3b6cba3cbf0e037af74e898a4741204",
        "56aa3c761d4e8c618151e92135706838abd84a6c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Sep 10 09:53:43 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Sep 10 09:53:43 2010 -0700"
      },
      "message": "resolved conflicts for merge of 56aa3c76 to gingerbread-plus-aosp\n\nChange-Id: I3d36a665f93f976824592edf35f6d6a205cc7617\n"
    },
    {
      "commit": "9584a542e345fa18fc62eb0b5947f250226f211d",
      "tree": "d4b34b8882f317dfa718067407ed03e07d9b685f",
      "parents": [
        "e3aa6aa77014b5798f95f6c5817df85910ecaac3",
        "a2341a9f6addcd79723965ec5b1a1c5ae0f8bd65"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 08 18:06:11 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 08 18:06:11 2010 -0700"
      },
      "message": "Merge \"Purge Skia objects from GL caches as needed.\""
    },
    {
      "commit": "a2341a9f6addcd79723965ec5b1a1c5ae0f8bd65",
      "tree": "ce61e01a0719f9fc52e48be002fe1d57d3af9c68",
      "parents": [
        "9aaa8269a3e7291aab84d01c3fc9c744d8f2d2f4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 08 18:04:33 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 08 18:04:33 2010 -0700"
      },
      "message": "Purge Skia objects from GL caches as needed.\n\nChange-Id: I754c671cf790ad5ae8bf047ad328034217da4ecc\n"
    },
    {
      "commit": "e3aa6aa77014b5798f95f6c5817df85910ecaac3",
      "tree": "1191efdfffad53daa99abaefdbc8adb505764f32",
      "parents": [
        "13831586874fab1592a9d6f9134a693b0b27bae8",
        "306cd58ddcc0cb8487bc6e015f8c692eea47a334"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 08 17:57:56 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 08 17:57:56 2010 -0700"
      },
      "message": "am 306cd58d: am d353c840: Merge \"HW audio encoder expects timestamp via kKeyTime from each input buffer\" into gingerbread\n\nMerge commit \u0027306cd58ddcc0cb8487bc6e015f8c692eea47a334\u0027\n\n* commit \u0027306cd58ddcc0cb8487bc6e015f8c692eea47a334\u0027:\n  HW audio encoder expects timestamp via kKeyTime from each input buffer\n"
    },
    {
      "commit": "d353c840ad5bf1b4e6bfba0e10bcdc79223bcdf7",
      "tree": "63e02f1e03b8bea17ad4dd2b5d255b61052d080c",
      "parents": [
        "46b84d5b4a44dbab8e0f6ee11f3ab42e11ce97bb",
        "d015ccf62b4e87756e2f7785af92338d35a21c15"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 08 17:51:59 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 08 17:51:59 2010 -0700"
      },
      "message": "Merge \"HW audio encoder expects timestamp via kKeyTime from each input buffer\" into gingerbread"
    },
    {
      "commit": "d015ccf62b4e87756e2f7785af92338d35a21c15",
      "tree": "c16ad2eeac8bda1f98174ad96273aacc1b1cc414",
      "parents": [
        "4c7d3f28898f4e0d8e9f54537fb92948e650df7f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 08 15:07:21 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 08 17:28:57 2010 -0700"
      },
      "message": "HW audio encoder expects timestamp via kKeyTime from each input buffer\n\n- This fixes media server crashes on droid\n\nChange-Id: I7191cadc5275107425ec3ee3d437b2c5295858dc\n"
    },
    {
      "commit": "15ff01cdb4c4878936a903ea7699daf1fa2b5927",
      "tree": "ff7d847d495b7f6bd2a60d074562bcb25c3ff6d3",
      "parents": [
        "62ecf53538ce46662a71f3026cf3aa5b5224cd6a",
        "e126119c3a406bc564f2549aeb1416aff112689d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 08 17:22:54 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 08 17:22:54 2010 -0700"
      },
      "message": "am e126119c: am 95d86480: Merge \"Modify type of some environmental reverb parameters\" into gingerbread\n\nMerge commit \u0027e126119c3a406bc564f2549aeb1416aff112689d\u0027\n\n* commit \u0027e126119c3a406bc564f2549aeb1416aff112689d\u0027:\n  Modify type of some environmental reverb parameters\n"
    },
    {
      "commit": "95d5de06819e98e298892f0486ee7ff210bcdd8b",
      "tree": "d2b07a359e137b24217c1ee730557412bacda80f",
      "parents": [
        "d9c80ab31ac3755141765e2c030bd1404ff0b050"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 08 16:06:18 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 08 16:06:18 2010 -0700"
      },
      "message": "Modify type of some environmental reverb parameters\n\nChanged type of decay time, reverb delay and reflections delay parameters\nfrom signed to unsigned int to match OpenSL ES interface definition.\n\nAlso fixed some type casts in lvm reverb wrapper.\n\nChange-Id: I5ca5e76a87c2590f01f031f3168355586ef22556\n"
    },
    {
      "commit": "3dfc5721ad4dfe15962fd18daf038044cd09bf86",
      "tree": "253f204e886b072920f4c38f4751b0ff91d765e1",
      "parents": [
        "de6386b8a66eade182ffb0eee8124c0814de960c",
        "8723bb58b17a07b7ca036cc76d737c6c0f4b13c7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 08 14:38:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 08 14:38:09 2010 -0700"
      },
      "message": "am 8723bb58: am b21fb104: Fix key repeat delay.\n\nMerge commit \u00278723bb58b17a07b7ca036cc76d737c6c0f4b13c7\u0027\n\n* commit \u00278723bb58b17a07b7ca036cc76d737c6c0f4b13c7\u0027:\n  Fix key repeat delay.\n"
    },
    {
      "commit": "b380c4d7edc158788a85c906900232675c0164ac",
      "tree": "579f4e6e8cd611c0f95302e0e53b6739b2e4d84e",
      "parents": [
        "35dc79da11639117aab34d3278a7ae90984c0f87",
        "a05088c18d22f822e78e7b91d60f518dc3dc06fc"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 08 13:02:55 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 08 13:02:55 2010 -0700"
      },
      "message": "resolved conflicts for merge of a05088c1 to master\n\nChange-Id: I7973f9f28586dec9b9659f8f662f40db7997a521\n"
    },
    {
      "commit": "b21fb104cc95fe7e5daf3b3626241e525c39a3f1",
      "tree": "5223ab6cdc459955d35add9af46210c8c6249a48",
      "parents": [
        "de2f3340d64e20e51029ff438f0d635d97b8a3e0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 07 10:44:57 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 08 12:28:43 2010 -0700"
      },
      "message": "Fix key repeat delay.\n\nChange-Id: I6216e082324ee29bf50e37acc673350ca5417c4d\n"
    },
    {
      "commit": "85a3176704b5bfbeece9bd928369fbb76eec7dc6",
      "tree": "1a84f21c037b514c5b6717b106f5a9a2c4fd6c99",
      "parents": [
        "c0b4f6d30d962d75125628317b5f5ea622531dfe"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 01 17:01:00 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 08 11:50:55 2010 -0700"
      },
      "message": "Add support for secure views.\n\nAdded the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the\ninput manager whenever another visible window is partly or wholly obscured\nthe target of a touch event so that applications can filter touches\naccordingly.\n\nAdded a \"filterTouchesWhenObscured\" attribute to View which can be used to\nenable filtering of touches when the view\u0027s window is obscured.\n\nChange-Id: I936d9c85013fd2d77fb296a600528d30a29027d2\n"
    },
    {
      "commit": "347262622b86410ff8a4ff3530ab3688b6a20b21",
      "tree": "f596d33ff54ab5169a7c52e19319b63d0e200e63",
      "parents": [
        "7dea769319701f4e883fc448507967b806b9b245",
        "a1205f07a6f0c745e8f42f16fe38c06af04143c7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 07 18:52:06 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 07 18:52:06 2010 -0700"
      },
      "message": "am a1205f07: am 2d3739d4: Merge \"Modify native ALooper to take an explicit ident.\" into gingerbread\n\nMerge commit \u0027a1205f07a6f0c745e8f42f16fe38c06af04143c7\u0027\n\n* commit \u0027a1205f07a6f0c745e8f42f16fe38c06af04143c7\u0027:\n  Modify native ALooper to take an explicit ident.\n"
    },
    {
      "commit": "42c03e579aade011b451e2a13ea3f44a2ef0056a",
      "tree": "1716fbd88e2beb816d303c3d3fa0ca1785b8db61",
      "parents": [
        "6e86915e8f5dfffa60ae5d1a4ca9aa74912fd026"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 07 15:28:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 07 15:46:55 2010 -0700"
      },
      "message": "Modify native ALooper to take an explicit ident.\n\nThe ALooper API now uses an explicit \"identifier\" for the integer\nthat is returned rather than implicitly using the fd.  This allows\nthe APIs that had the fd to be a little more sane.\n\nChange-Id: I8507f535ad484c0bdc4a1bd016d87bb09acd7ff0\n"
    },
    {
      "commit": "f5e1faf1ccee6698b7e51cd70ab382ee0c8bc5e1",
      "tree": "b258b3c38cd485089e02c64187702f05add33634",
      "parents": [
        "7e955e7ccef41fba8bed9f6b9d4fd59afb9007ae",
        "4a857e620fecd91d051d8e58f573b5ff30d81aaf"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 03 17:14:51 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 03 17:14:51 2010 -0700"
      },
      "message": "Merge changes I71f5b0fc,I92c7accb\n\n* changes:\n  Moving decision to use still camera to CameraSourceTimeLapse\n  pass auxiliary video parameters.\n"
    },
    {
      "commit": "4a857e620fecd91d051d8e58f573b5ff30d81aaf",
      "tree": "115280da6f02ce144863960052fe75340aa9225b",
      "parents": [
        "ab15bce98d44b67f221b6fb8a377744940dda46c"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Sep 02 11:43:15 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 03 17:09:36 2010 -0700"
      },
      "message": "Moving decision to use still camera to CameraSourceTimeLapse\n\nCameraSourceTimeLapse now decides whether to use still or video\ncamera automatically. It checks if the passed in size is a valid\npreview size and if it is, then uses the video camera else uses\nthe still camera.\n\nRemoved from StagefrightRecorder the support to set parameter\nuseStillCameraForTimeLapse.\n\nChange-Id: I71f5b0fc7080ca524792381efe918d22e41a7f36\n"
    },
    {
      "commit": "1ab9d1289b0e31033ba87490f185732e08bed7b5",
      "tree": "5ee30a851541809d9052966b7110b8e530c20bc4",
      "parents": [
        "a093659dd0ed5b17df1a5d7266345b50e6f1a023",
        "8e11c82247151085fa165c76bfbc157bc6091ca4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 03 14:54:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 03 14:54:28 2010 -0700"
      },
      "message": "am 8e11c822: am 9fee0b2a: Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer\\\u0027s setLooping setting.\n\nMerge commit \u00278e11c82247151085fa165c76bfbc157bc6091ca4\u0027\n\n* commit \u00278e11c82247151085fa165c76bfbc157bc6091ca4\u0027:\n  Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer\u0027s setLooping setting.\n"
    },
    {
      "commit": "a093659dd0ed5b17df1a5d7266345b50e6f1a023",
      "tree": "739e9c62cae44fc476472fb439e55a592ba013ea",
      "parents": [
        "9096a427ced8b020730cfce136a276ff00724485",
        "33a78149e00806d055ff214d300279963965a677"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Sep 03 14:42:06 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 03 14:42:06 2010 -0700"
      },
      "message": "Merge \"Add the new Stagefright ANativeWindow OMX codec API.\""
    },
    {
      "commit": "33a78149e00806d055ff214d300279963965a677",
      "tree": "cdacfed612894aacaf7d8aca82501cd9895bd9cd",
      "parents": [
        "0eb9b77eec4abb201a6c90cf543172df6473a19e"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 30 16:48:38 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Sep 03 14:32:42 2010 -0700"
      },
      "message": "Add the new Stagefright ANativeWindow OMX codec API.\n\nThis change defines the two OMX_SetParameter calls that enable OMX codecs to\ninteract with ANativeWindows.  It also adds the plumbing to the IOMX, OMX, and\nOMXNodeInstance classes to use these new APIs.\n\nThis is try 2 for this change, after reverting the first one because it broke\nthe build.\n\nChange-Id: I94249b72bdb5d5719360f03d7935fcca4ece5028\n"
    },
    {
      "commit": "9fee0b2a02daa6fcf286ed930e45400dd3ba8dba",
      "tree": "ec5571f890b18ed4daf0c91d994e411911dea5fe",
      "parents": [
        "dc243482d6e104c4a3cddaa694c2ee3c628c2c20"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 03 14:09:21 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 03 14:31:50 2010 -0700"
      },
      "message": "Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer\u0027s setLooping setting.\n\nChange-Id: Ifb564c6cdf6137eac14869f9ca7d471f05a5556a\nrelated-to-bug: 2974691\n"
    },
    {
      "commit": "9b3569bc42a4c85e86724cea693368693fb76fe7",
      "tree": "13fd40a3ba766eede97e2e69490ddf2f003ccbce",
      "parents": [
        "2af574d815c3d687a7fe56f816342b022c0d711b",
        "bc1452a307ac61ca87bf78722701ac85100952af"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 03 11:37:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 03 11:37:14 2010 -0700"
      },
      "message": "am bc1452a3: am 7755cdd6: Remove unused/debugging code from MP4 file writer\n\nMerge commit \u0027bc1452a307ac61ca87bf78722701ac85100952af\u0027\n\n* commit \u0027bc1452a307ac61ca87bf78722701ac85100952af\u0027:\n  Remove unused/debugging code from MP4 file writer\n"
    },
    {
      "commit": "7755cdd69690ccbb42c6fd47b3e9c4594d4ade82",
      "tree": "1f0415e8cc750bd9f3ce33ae6efb25c5d40a43fe",
      "parents": [
        "46e63b346770efa14451b8e67b7f7636c4e5a76c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 02 10:49:55 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 03 10:13:19 2010 -0700"
      },
      "message": "Remove unused/debugging code from MP4 file writer\n\no also makes nal length in the recorded file modifiable at runtime\n\nChange-Id: I731b4dde7070d8d9628b36b523a5b2c011c7c2cf\n"
    },
    {
      "commit": "0e60f5304b51fe168b8c356b0cb3150b321a8d95",
      "tree": "11c5c60f36a391c22973f53b80ca5fddee76bbeb",
      "parents": [
        "4d42bdec8229802945e57a634374e113ff234dfe",
        "3c3fc97e104bd17af608727d82e965fc28f2c89d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 03 09:59:05 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 03 09:59:05 2010 -0700"
      },
      "message": "am 3c3fc97e: am 46e63b34: Merge \"Better file size estimate\" into gingerbread\n\nMerge commit \u00273c3fc97e104bd17af608727d82e965fc28f2c89d\u0027\n\n* commit \u00273c3fc97e104bd17af608727d82e965fc28f2c89d\u0027:\n  Better file size estimate\n"
    },
    {
      "commit": "cb7e65c6cbe75c3fe55af95eba73431394669692",
      "tree": "97a7f34225e4448211df9471b430ed3bc660096a",
      "parents": [
        "7ed7668b30e70ca8e3f0f183364433326ed29f39"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 02 11:19:11 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 02 20:10:00 2010 -0700"
      },
      "message": "Better file size estimate\n\nWhen the recorded file becomes large, the metadata size can\nno longer be ignored. This makes it possible to save the\nrecorded file when the storage becomes almost full at the\nend of the recording session.\n\nChange-Id: Ief038080f825c9946ce550949c03e914aec1e31a\n"
    },
    {
      "commit": "9f20d3328f84d8979652917e860bcc235bf5fb75",
      "tree": "e7d8f682ad7d5a17cc5338a0174e7339cacd97ad",
      "parents": [
        "f52faefce82ac4236f6a266fcfec0650c844421d",
        "bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 02 18:51:05 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 02 18:51:05 2010 -0700"
      },
      "message": "am bb64e554: am 7ed7668b: Merge \"Calculate audio media drift time from AudioSource\" into gingerbread\n\nMerge commit \u0027bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3\u0027\n\n* commit \u0027bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3\u0027:\n  Calculate audio media drift time from AudioSource\n"
    },
    {
      "commit": "4c23815c3986e50f0cfad3976d748e600f1befa2",
      "tree": "839a922dfe31849499ed1989ad6723a7700d4ae2",
      "parents": [
        "3424c02e6b931a8bbd651ae75217bebd008b2605"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 01 18:48:35 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 01 20:45:39 2010 -0700"
      },
      "message": "Calculate audio media drift time from AudioSource\n\nThe problem was that the time to receive an output buffer\nfrom an audio encoder is different because the encoder does not\nneed to read from the source for all output buffers. This leads\nto large fluctuation in terms of wall clock duration between two\nneighboring audio sample outputs from the audio encoder. As a\nresult, the media time for the video track after adjustment using\nthe drifting changes wildly sometimes.\n\nThis patch addresses this issue by only updating the media drift\ntime when an audio source input buffer is read. the wall clock\nfor the audio track is also calculated at the same time when\nthe input audio buffer is read at AudioSource.\n\nbug - 2959800\n\nChange-Id: I3174aa182f744784b540f0a7198524d4eee8bd7b\n"
    },
    {
      "commit": "2198d7517cf897039c416466aa010abaf89b5846",
      "tree": "be839a3d5997176885c00bfb3ee8e9d7a455b261",
      "parents": [
        "23600cec3d71dc55d3e5c34f75067bd901d9f244"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 01 14:32:35 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 01 14:32:35 2010 -0700"
      },
      "message": "Revert \"Merge \"Add the new Stagefright ANativeWindow OMX codec API.\"\"\n\nThis reverts commit 8a643b411e1802977f742709113ce01b06a18e12, reversing\nchanges made to 73ea9beaf8eb3d0027e78cbc0ac5e626c3f8deb4.\n"
    },
    {
      "commit": "8a643b411e1802977f742709113ce01b06a18e12",
      "tree": "5af9900b48e6856e2ac8999fd44c2c07841f6a88",
      "parents": [
        "73ea9beaf8eb3d0027e78cbc0ac5e626c3f8deb4",
        "dab357bfd0919e02a842b7edfaf2de6c85c313b3"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 01 14:00:33 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 01 14:00:33 2010 -0700"
      },
      "message": "Merge \"Add the new Stagefright ANativeWindow OMX codec API.\""
    },
    {
      "commit": "dab357bfd0919e02a842b7edfaf2de6c85c313b3",
      "tree": "cf2085379febfeda11b90d24c20fe48f6553939f",
      "parents": [
        "ec95d932546186ad7ad1d847a6e8f7529e7c7d83"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 30 16:48:38 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 01 13:07:08 2010 -0700"
      },
      "message": "Add the new Stagefright ANativeWindow OMX codec API.\n\nThis change defines the two OMX_SetParameter calls that enable OMX codecs to\ninteract with ANativeWindows.  It also adds the plumbing to the IOMX, OMX, and\nOMXNodeInstance classes to use these new APIs.\n\nChange-Id: Ibfbf893dc3513db0b3d3221bec5708c77287cddc\n"
    },
    {
      "commit": "d074e30ce44b9e33da43b67a4515b8986ca72b26",
      "tree": "cea9a809ad3b678713d10b938eb21f0d792a89d8",
      "parents": [
        "f470ed8630e9e648727443b065b9f1c69fee34d6"
      ],
      "author": {
        "name": "aimitakeshi",
        "email": "aimitakeshi@gmail.com",
        "time": "Thu Jul 29 10:12:27 2010 +0900"
      },
      "committer": {
        "name": "aimitakeshi",
        "email": "aimitakeshi@gmail.com",
        "time": "Wed Sep 01 15:40:00 2010 +0900"
      },
      "message": "  Initial contribution from Sony Corporation.\n\n  Add DRM Framework to support DRM content playback\n  together with StageFright.\n\n  - DRM Framework code is added\n     - include/drm\n     - drm\n  - api/current.xml is updated to include DRM Framework Java APIs\n  - cmds/servicemanager/service_manager.c is modified\n    to add drmManager and drmIOService.\n\nChange-Id: I6d7bc9c7067362b500e530988a9ce241761866fb\n"
    },
    {
      "commit": "ee6d676c5b997a1214e96b6ba3755054382717c5",
      "tree": "9576d1113eff5dd088834bf447345e8748be9f9e",
      "parents": [
        "97a24c60eec54cb95ded8dcb7db6c2e95d835ce4",
        "df02df115a594553b3ebaa95a0a7f7185a8787d3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 31 15:53:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 31 15:53:17 2010 -0700"
      },
      "message": "am df02df11: am 307ed31c: Merge \"Remove incomplete input device enumeration NDK API.\" into gingerbread\n\nMerge commit \u0027df02df115a594553b3ebaa95a0a7f7185a8787d3\u0027\n\n* commit \u0027df02df115a594553b3ebaa95a0a7f7185a8787d3\u0027:\n  Remove incomplete input device enumeration NDK API.\n"
    },
    {
      "commit": "5fad2675e8deee60aa91d7a96c9ac4826357f2c5",
      "tree": "a6bd559cdfc301df21693357650c3b58b95e0763",
      "parents": [
        "47471175c9d19a00d06a77aa316dcda08be97deb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 31 15:20:28 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 31 15:24:55 2010 -0700"
      },
      "message": "Remove incomplete input device enumeration NDK API.\n\nChange-Id: I32de74ff5fcf0e29179a2aee03ddabd22fa485bb\n"
    },
    {
      "commit": "1423f51ec5fe2c9bf5fa44866443b2c52db165be",
      "tree": "0ab080b873257293730980e9d2479045a1af2e2e",
      "parents": [
        "fdf5b0808ff6f6a3c067dab17a9533cfd66229f1",
        "ae087369c56a270c33c1c1af5be7d3c5d7f94e80"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 31 15:06:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 31 15:06:24 2010 -0700"
      },
      "message": "am ae087369: am 63070856: Merge \"Don\\\u0027t propagate StrictMode over one-way Binder calls.\" into gingerbread\n\nMerge commit \u0027ae087369c56a270c33c1c1af5be7d3c5d7f94e80\u0027\n\n* commit \u0027ae087369c56a270c33c1c1af5be7d3c5d7f94e80\u0027:\n  Don\u0027t propagate StrictMode over one-way Binder calls.\n"
    },
    {
      "commit": "0234376503ce421c4b871d5d811c541f5094301a",
      "tree": "6f4686cb9bdc0d19f8c4b541c57ad5b10496588a",
      "parents": [
        "6aacad66eba2b51251f7e2dfb8c005b5242326ca"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Aug 30 16:01:16 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 31 13:16:49 2010 -0700"
      },
      "message": "Don\u0027t propagate StrictMode over one-way Binder calls.\n\nThis was causing stack stitching problems where a one-way call with\nviolations followed by a two-way call without violations was getting\nthe previous one-way call\u0027s violation stack stitched on to the second\ncaller\u0027s stack.\n\nThe solution is a little more indirect than I would\u0027ve liked\n(preserving the binder\u0027s onTransact flags until enforceInterface) but\nwas seemingly necessary to work without changing the AIDL compiler.\nIt should also be sufficiently cheap, since no new calls to\nthread-local IPCThreadState lookups were required.  The additional\nwork is just same-thread getter/setters on the existing\nIPCThreadState.\n\nChange-Id: I4b6db1d445c56e868e6d0d7be3ba6849f4ef23ae\n"
    },
    {
      "commit": "06a1d619aad17be48f6636b8dd68914da9e9ee53",
      "tree": "79c421bb197da53570bb0dc11f841bdfbdf6ff7d",
      "parents": [
        "b33a5aea130b025f30966828562fcba56f25b265"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Aug 30 14:55:55 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 10:38:49 2010 -0700"
      },
      "message": "Added VideoSourceDownSampler\n\nVideoSourceDownSampler takes in a real video source. The MediaSource\ninterface is then implemented by shortcircuiting calls to this real source,\nexcept for the read() function. For read we first call read of the real\nsource, then downsample the frame to the desired size and return that.\n\nChange-Id: I6e1b377e043e136a70a7b03792eb9165bbe26398\n"
    },
    {
      "commit": "b33a5aea130b025f30966828562fcba56f25b265",
      "tree": "14bf73041e696dc6b810a82366e5fb09366da114",
      "parents": [
        "d7e7a3f98ffb5da7fe070de2e2dc3db338930b57"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 26 17:20:53 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 10:38:49 2010 -0700"
      },
      "message": "Added setAuxiliaryOutputFile to MediaRecorder and JNI\n\nadded setAuxiliaryOutputFile to allow setting of an auxiliary output file.\nAlso added the JNI support.\n\nChange-Id: I8c3335192bd6f7fcbfdfc8552cfd0848f2ad2a5d\n"
    },
    {
      "commit": "22f5ee93746f37823265b8cb9b1e94e572607514",
      "tree": "269e105935875e8453c0bd33792fdeedd4c928ee",
      "parents": [
        "02f4f0eb4919453e8dbf40549d4ae9c05f05b8dd",
        "36f0cb26cbb4ef62995ff2e5a540cf8814e7f030"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 30 18:29:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 18:29:12 2010 -0700"
      },
      "message": "am 36f0cb26: am 8d60866e: Input device calibration and capabilities.\n\nMerge commit \u002736f0cb26cbb4ef62995ff2e5a540cf8814e7f030\u0027\n\n* commit \u002736f0cb26cbb4ef62995ff2e5a540cf8814e7f030\u0027:\n  Input device calibration and capabilities.\n"
    },
    {
      "commit": "8d60866e2100db70ecf0502c14768a384514d7e9",
      "tree": "514e46b4e4d58fd68cd52de93b93e7782fdf4e9f",
      "parents": [
        "bb660d7e1bed3a07a1804bd9641d9634bfaa4972"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 30 03:02:23 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 30 18:16:43 2010 -0700"
      },
      "message": "Input device calibration and capabilities.\n\nFinished the input device capability API.\nAdded a mechanism for calibrating touch devices to obtain more\naccurate information about the touch contact area.\nImproved pointer location to show new coordinates and capabilities.\nOptimized pointer location display and formatting to avoid allocating large\nnumbers of temporary objects.  The GC churn was causing the application to\nstutter very badly when more than a couple of fingers were down).\nAdded more diagnostics.\n\nChange-Id: Ie25380278ed6f16c5b04cd9df848015850383498\n"
    },
    {
      "commit": "b8f7f42f70790121f954c2ae3d2e7b915808510a",
      "tree": "b1021e2ca1cc67ee9416b79b3cd2ca11bbfb38f7",
      "parents": [
        "1ace4163fa8015c58b28aaa7b0d8d49bdee654d1",
        "6e46e6f7488ad1f4e6ab762d141790798fe3f2d5"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 30 14:06:16 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 14:06:16 2010 -0700"
      },
      "message": "am 6e46e6f7: am 7ec7b997: Remove camera metering mode API.\n\nMerge commit \u00276e46e6f7488ad1f4e6ab762d141790798fe3f2d5\u0027\n\n* commit \u00276e46e6f7488ad1f4e6ab762d141790798fe3f2d5\u0027:\n  Remove camera metering mode API.\n"
    },
    {
      "commit": "7ec7b9970cc3a6311bf043e228991adf24c43523",
      "tree": "4aea84acb9fe2677227e5522b31de779c505a713",
      "parents": [
        "681c5ff2085a08835c08b97641ebdc1b37489943"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Aug 27 15:39:46 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 30 13:33:53 2010 -0700"
      },
      "message": "Remove camera metering mode API.\n\nMetering mode is not supported yet.\n\nChange-Id: Id6906d6ab0cd1a9dcbc5c303d8d5081b2cda699e\n"
    },
    {
      "commit": "631025eec0a7d14efb3569f1941a8f8ead5283c4",
      "tree": "bc1476e4bad0044a10ff45ae135feda4affc5719",
      "parents": [
        "ec959a7e38d4a6551bb18e096a912ff8c75c50b3",
        "6df6d60681be9d524ce7fc07f2511008de424d27"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 13:29:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 13:29:51 2010 -0700"
      },
      "message": "am 6df6d606: am df992ac9: Merge \"ALoopers can now be named (useful to distinguish threads).\" into gingerbread\n\nMerge commit \u00276df6d60681be9d524ce7fc07f2511008de424d27\u0027\n\n* commit \u00276df6d60681be9d524ce7fc07f2511008de424d27\u0027:\n  ALoopers can now be named (useful to distinguish threads).\n"
    },
    {
      "commit": "df992ac9cc54cedb3e384617ed683a2d1a24d38b",
      "tree": "a4583c810f9d5464816365acaee51d891cc5b2f7",
      "parents": [
        "6726d6bb1a30167786864c445cbe0370ee0dd58c",
        "c4e0b70a21fadb47d70955c71fc31ce1473da925"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 10:28:24 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 30 10:28:24 2010 -0700"
      },
      "message": "Merge \"ALoopers can now be named (useful to distinguish threads).\" into gingerbread"
    },
    {
      "commit": "453f2ef14a9de3415f1da818d7c42a3b5e11a62a",
      "tree": "91ca06c1260d6174a7e3b8354de36cdda4204b48",
      "parents": [
        "818c830c59fb8fb0fe7576f1e5a073ab599227c8",
        "ea434daf19c30f1a7806f1c7e01e6e2174a7ef5d"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 18:21:30 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 27 18:21:30 2010 -0700"
      },
      "message": "Merge \"client_id-\u003eclientId, bugfix for signaling of read abort on stop.\""
    },
    {
      "commit": "ea434daf19c30f1a7806f1c7e01e6e2174a7ef5d",
      "tree": "f3dfb15d0d379c65de44d5726db1472f41667f77",
      "parents": [
        "f83cba77b69b4db2d4db10fafb528196e5590110"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 14:19:01 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 18:19:22 2010 -0700"
      },
      "message": "client_id-\u003eclientId, bugfix for signaling of read abort on stop.\n\n- changed client_id-\u003eclientId, mClient_id-\u003emClientId\n- there was a bug in the condition for calling\n  signalReadComplete_lock() in stop. We should call it only when\n  !mLastReadCompleted and also if the current client has not already\n  completed its read (this second check was missing before).\n\nChange-Id: I9a57cf6b5c6f3260883a6c74d0c7b22f675c422e\n"
    },
    {
      "commit": "206bf9df4839395e52a6834f9a0a452d355bad36",
      "tree": "334b5e02cbcf2e23958de6deef6d1170cdd51744",
      "parents": [
        "7fe6d3f13ae18a85c09bf38ea1f3281280a9fd48",
        "a5fe77d004091bd9521d087c2572f587191afbfc"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 18:10:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 18:10:01 2010 -0700"
      },
      "message": "am a5fe77d0: am df8356ff: Merge \"Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder is occasionally too small.\" into gingerbread\n\nMerge commit \u0027a5fe77d004091bd9521d087c2572f587191afbfc\u0027\n\n* commit \u0027a5fe77d004091bd9521d087c2572f587191afbfc\u0027:\n  Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder\n"
    },
    {
      "commit": "c6ff7a91890305877410c5ddf853bd961a7d11cc",
      "tree": "be43725eacd51e49f70556722d8dc0a11b619001",
      "parents": [
        "8abd4256f3b94d5e44583a975603894c52dc039a",
        "7d3ff3849c830f0136c692b6074f1ba5da288fe7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 18:09:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 18:09:37 2010 -0700"
      },
      "message": "am 7d3ff384: am b86365ad: Merge \"Suppress the video recording start signal - bug 2950297\" into gingerbread\n\nMerge commit \u00277d3ff3849c830f0136c692b6074f1ba5da288fe7\u0027\n\n* commit \u00277d3ff3849c830f0136c692b6074f1ba5da288fe7\u0027:\n  Suppress the video recording start signal\n"
    },
    {
      "commit": "54c4bf27437b8d7f8d2a494acd9de53d55696dea",
      "tree": "0045c300c5f2cbd1ddb2756a31f79b80fa7b0eb3",
      "parents": [
        "4dcea37d48cc25d5e5e5cc56f7ca3d90d4efd49d",
        "d322d16323176ddd5fef3383798176f64d0078c8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 27 16:18:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 16:18:12 2010 -0700"
      },
      "message": "am d322d163: am ae66946b: Merge \"fix a race in SF buffer management\" into gingerbread\n\nMerge commit \u0027d322d16323176ddd5fef3383798176f64d0078c8\u0027\n\n* commit \u0027d322d16323176ddd5fef3383798176f64d0078c8\u0027:\n  fix a race in SF buffer management\n"
    },
    {
      "commit": "c4e0b70a21fadb47d70955c71fc31ce1473da925",
      "tree": "138af40209a99a4dc3d34ad49855cba1aa9ed132",
      "parents": [
        "577615c98e390f8417e07844d04304eac5b0e911"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 27 15:21:07 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 27 15:21:07 2010 -0700"
      },
      "message": "ALoopers can now be named (useful to distinguish threads).\n\nChange-Id: Ieabaddb2e3a9e3a7a5bc36e55cd0721b60dbd50e\n"
    },
    {
      "commit": "90862e2a8b3ea522cf1dace5e93dcec109a1aa85",
      "tree": "95b2c116c4b3ae3b5d196ee16ff3f013ee970eab",
      "parents": [
        "b86365ad74a197f2af6d70eedeb19083e31a9686"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 26 19:12:59 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 13:59:26 2010 -0700"
      },
      "message": "Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder\nis occasionally too small.\n\nbug - 2882917\n\nChange-Id: Id59d8529084c5689a26f272e0cd3b1e955fd8a30\n"
    },
    {
      "commit": "cf66e47dddee9b1e634e63ab6ed66bccbef57884",
      "tree": "77e1603884b387a6774afad8ed9b5d5e919ce349",
      "parents": [
        "3fec2bf9bfcc6a43c6284f5ab1127f10f3d0a173",
        "f83cba77b69b4db2d4db10fafb528196e5590110"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 13:48:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 27 13:48:15 2010 -0700"
      },
      "message": "Merge \"Added MediaSourceSplitter to split single source to multiple ones.\""
    },
    {
      "commit": "b86365ad74a197f2af6d70eedeb19083e31a9686",
      "tree": "ced9f978d403df1e7353aec85bc71b7b7485c2da",
      "parents": [
        "577615c98e390f8417e07844d04304eac5b0e911",
        "d7f1c3d69274fef8772a663ce1c792fd0466fcc5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 13:47:06 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 27 13:47:06 2010 -0700"
      },
      "message": "Merge \"Suppress the video recording start signal - bug 2950297\" into gingerbread"
    },
    {
      "commit": "f83cba77b69b4db2d4db10fafb528196e5590110",
      "tree": "99e381f74145570ff789da4422fcc00b981626a6",
      "parents": [
        "2b342f0a76f3237e97f15dc2f4e8a0b72dd7c023"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 26 15:59:19 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 13:46:41 2010 -0700"
      },
      "message": "Added MediaSourceSplitter to split single source to multiple ones.\n\nMediaSourceSplitter provides a way to split a single mediaSource\ninto multiple sources. It takes in the real mediaSource and multiple\nclients can then be created which serve from the same real mediaSource.\n\nChange-Id: I7254ead24b4c26c784b033e6bc7ff5a0d083a0c3\n"
    },
    {
      "commit": "c9289fa1c4d3aeba5122863cdae7d0a9806d8833",
      "tree": "85f164c24002d615746a906b8862e222593ebb8f",
      "parents": [
        "ed101933ab7506d841d6eaa7bebda4b674c38088"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 26 17:42:27 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 26 17:42:27 2010 -0700"
      },
      "message": "fix a race in SF buffer management\n\nalso remove some unused code.\n\nChange-Id: Iae2c3309b7a08055f3e13a5b866c5c084993e352\n"
    },
    {
      "commit": "d7f1c3d69274fef8772a663ce1c792fd0466fcc5",
      "tree": "0e6ea38c4933894e5058b0cbe05514a3b389f44c",
      "parents": [
        "a90b7f0125389b9e1040d2be82aad4ef74ea6071"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 26 16:28:17 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 26 16:56:49 2010 -0700"
      },
      "message": "Suppress the video recording start signal\n- bug 2950297\n\nChange-Id: I0044d07178691feb904cf81e87c1b6d4b714dc1a\n"
    },
    {
      "commit": "ec95d932546186ad7ad1d847a6e8f7529e7c7d83",
      "tree": "c9e52168e0669835e343364353466247318cda03",
      "parents": [
        "bf4c0c88087995db55699ec29b44ede04e432fe8",
        "8ca5df27df8a2b6435486f9b5a163bf222f8fed1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 25 15:16:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 25 15:16:00 2010 -0700"
      },
      "message": "am 8ca5df27: am c14f9ca6: Merge \"Added preset reverb.\" into gingerbread\n\nMerge commit \u00278ca5df27df8a2b6435486f9b5a163bf222f8fed1\u0027\n\n* commit \u00278ca5df27df8a2b6435486f9b5a163bf222f8fed1\u0027:\n  Added preset reverb.\n"
    },
    {
      "commit": "c14f9ca6e5e795b641e7809786b4e51e13493907",
      "tree": "85bcd6c2690ac3be3c0c1ab855390a07ed28a7e0",
      "parents": [
        "235840228b0692b66d854ff499b5c4060f883e03",
        "a7e5648d611e6e8bdd4cafe051b5fadf3a20735c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 25 15:09:10 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 25 15:09:10 2010 -0700"
      },
      "message": "Merge \"Added preset reverb.\" into gingerbread"
    },
    {
      "commit": "a1644109bb68f0c6d7b29d60a06172702d64a964",
      "tree": "603181d02df503a057b87b850051c752e5e83e7e",
      "parents": [
        "cb3be1b4d9fe6667479f9d6acfd37aa8b73fae61",
        "96dc45597e53742a2c8453f9ce03f7d501a75668"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 25 13:17:44 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 25 13:17:44 2010 -0700"
      },
      "message": "am 96dc4559: am b8814dce: Merge \"Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.\" into gingerbread\n\nMerge commit \u002796dc45597e53742a2c8453f9ce03f7d501a75668\u0027\n\n* commit \u002796dc45597e53742a2c8453f9ce03f7d501a75668\u0027:\n  Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.\n"
    },
    {
      "commit": "efdd088a71ddd0a96cf9ca2f58e8703fe8c5c494",
      "tree": "f4bbf913a51ded55645293b85f4b5af5e8d8f7ff",
      "parents": [
        "231a0005654d23284ab58a2d9ea892b995988c34"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 25 11:09:41 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 25 13:08:38 2010 -0700"
      },
      "message": "Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.\n\nChange-Id: Icb77ae3ee95a69c7da25b4d3b8696c0a2d33028a\nrelated-to-bug: 2948754\n"
    },
    {
      "commit": "bce2e90ca9bc2277a4816b7996f84506df411cf9",
      "tree": "2a1902282acfebe7f68a202a4c43ffbeb0e9df6d",
      "parents": [
        "8d9d751a8f09a0199d1d22a3f8267eb51f919cc0",
        "bc4389edfbb5777aec1a9af7863b2ca3ade2fa64"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 24 17:56:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 17:56:40 2010 -0700"
      },
      "message": "am bc4389ed: am 8395b462: Merge \"fix [2931513] Add support for setting the orientation of an ANativeWindow\" into gingerbread\n\nMerge commit \u0027bc4389edfbb5777aec1a9af7863b2ca3ade2fa64\u0027\n\n* commit \u0027bc4389edfbb5777aec1a9af7863b2ca3ade2fa64\u0027:\n  fix [2931513] Add support for setting the orientation of an ANativeWindow\n"
    },
    {
      "commit": "a7e5648d611e6e8bdd4cafe051b5fadf3a20735c",
      "tree": "8aac4d3fc42cca5067f16ceb468b3d66c3ca8296",
      "parents": [
        "b6d71351c074d5c0bc13a91544d776f1524eaabd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 24 14:21:57 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 24 17:32:48 2010 -0700"
      },
      "message": "Added preset reverb.\n\nModified lvm reverb wrapper code to expose a preset reverb interface.\nAlso removed debug log from bundle and reverb wrapper.\n\nChange-Id: If9b95d91e25a6ff834decdfdda34b17df9b46967\n"
    },
    {
      "commit": "e96aa3e859cb747e241dfa2999fcd142a688ed57",
      "tree": "8b725f12dd84b37345eebaa40951bc401b2e0a3f",
      "parents": [
        "0c76c7c5eedf90b5fa1a95b6a9944b4e58747007"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 19 17:01:19 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 24 15:40:50 2010 -0700"
      },
      "message": "fix [2931513] Add support for setting the orientation of an ANativeWindow\n\nAlso implement support for cropping.\n\nChange-Id: Iba5888dd242bf2feaac9e9ce26e404c1f404c280\n"
    },
    {
      "commit": "7741ecc907d98b07c53b6ab1c0b5a20a51d18058",
      "tree": "cc1129208f1c500d196ae35a4097602bebff6ec0",
      "parents": [
        "3f6855ba6c87a6f364daed6cb03aec5d735847ae",
        "28a92120a702289533a9c9d004bd60f83b2fd98b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 24 11:20:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 11:20:40 2010 -0700"
      },
      "message": "am 28a92120: am 3f51fa78: Runtime dump support for MediaWriter\n\nMerge commit \u002728a92120a702289533a9c9d004bd60f83b2fd98b\u0027\n\n* commit \u002728a92120a702289533a9c9d004bd60f83b2fd98b\u0027:\n  Runtime dump support for MediaWriter\n"
    },
    {
      "commit": "3f6855ba6c87a6f364daed6cb03aec5d735847ae",
      "tree": "9975a97a0d744e4e41b2d142780d79f9a7fca6aa",
      "parents": [
        "14ee4cf30537a62b6af46cef70e6644fefc381d3",
        "a102871c7cbb74ebddc53231a871145de61351b0"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Aug 24 11:19:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 11:19:28 2010 -0700"
      },
      "message": "am a102871c: am b80e610b: Merge \"Visualizer: replace the FFT implementation with a faster one.\" into gingerbread\n\nMerge commit \u0027a102871c7cbb74ebddc53231a871145de61351b0\u0027\n\n* commit \u0027a102871c7cbb74ebddc53231a871145de61351b0\u0027:\n  Visualizer: replace the FFT implementation with a faster one.\n"
    },
    {
      "commit": "53e75ea847df20b29124966a4232dc0109c37e27",
      "tree": "4c545e0c93b0d50122002201d3f6836225a6b3dd",
      "parents": [
        "d820714e30a53b244d252e77c7922e2c1604adbc",
        "485de781f6bd30dfb7aa1e55c4f1efb3d3b11eba"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 24 09:57:33 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 24 09:57:33 2010 -0700"
      },
      "message": "resolved conflicts for merge of 485de781 to master\n\nChange-Id: I483cb81596f09b024b1aea7fc55960183f38b24f\n"
    },
    {
      "commit": "eee09313c659b1c97ef6188b6ae4066c87615159",
      "tree": "18fefae142edd6cc1ce351d3fea6008afee8f78e",
      "parents": [
        "e2d37b03f72986ad6faaf2d0f66ecf33e6bfb55a",
        "346b6126d54bda4ddc705b27f49004b5cf3a2b3e"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 24 09:01:27 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 09:01:27 2010 -0700"
      },
      "message": "am 346b6126: am 97a56269: Merge \"Add camera fps range API.\" into gingerbread\n\nMerge commit \u0027346b6126d54bda4ddc705b27f49004b5cf3a2b3e\u0027\n\n* commit \u0027346b6126d54bda4ddc705b27f49004b5cf3a2b3e\u0027:\n  Add camera fps range API.\n"
    },
    {
      "commit": "85cfdd011241a5f2fb7fabc65b5943a39af7e1de",
      "tree": "556bd6f34ae8d300d9fa05fe46bb0dc4d8aa43e0",
      "parents": [
        "7fdaa2329e755c0e5c25724a43b8c361b88e9623"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Aug 10 16:37:53 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 23 14:31:30 2010 -0700"
      },
      "message": "Change the framework to use the new camera preview path.\n\nThis change makes the camera HAL interface take an ANativeWindow interface from\nwhich all the camera preview buffers will be allocated.  The framework code\nrunning in application processes now passes a Surface object rather than an\nISurface to the camera server via Binder when setting the preview surface.  The\ncamera server then forwards that Surface object (which implements the\nANativeWindow interface) to the camera HAL, which uses it to communicate with\nSurfaceFlinger to allocate the camera preview buffers.\n\nChange-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f\n"
    },
    {
      "commit": "d5350764c9cbb27b91ca0503d6e318dffabe969f",
      "tree": "bb237345667138cf8776bed5a0a0d663bfa1a1da",
      "parents": [
        "27113f86461fb19005900b8d6cebf264ecf77409",
        "e3c01832fc741e9908f047d86cd40db1ea5d78c8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 23 12:31:59 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 23 12:31:59 2010 -0700"
      },
      "message": "Merge \"Squashed commit of the following:\""
    },
    {
      "commit": "e3c01832fc741e9908f047d86cd40db1ea5d78c8",
      "tree": "6765bad7dbcf95dc5ca28ba5b2de5f7a70047712",
      "parents": [
        "ed23e3b87906d367304dbf5bd49ed17448d5d684"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 16 08:49:37 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 23 12:30:24 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 35cc68814a9537c31fde146e171e7b0bbdfe211e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Aug 16 08:48:42 2010 -0700\n\n    Only enable support for yuv to yuv conversion on passion, where it\u0027s available, use the slower yuv-\u003ergb565 path everywhere else.\n\ncommit d8ac5a8814103e60d11d2acf61997fc31a1dc58d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 13 13:56:44 2010 -0700\n\n    The software renderer takes over all rendering, converting from yuv to yuv if possible and rgb565 otherwise.\n\ncommit 684972074b74318bdcb826ed9b5b0864d2d2e273\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 13 09:34:35 2010 -0700\n\n    A first shot at supporting the new rendering APIs.\n\nChange-Id: Iea9b32856da46950501f1a700f616b5feac710fd\n"
    },
    {
      "commit": "6c32677db33565fc2798b96b03dd19be2f81084c",
      "tree": "d42adfc0445d8c6d2824d00231ae65737c7e6922",
      "parents": [
        "a931e9a15840f9074f1803b5adb2f23b40a1ab1b",
        "caaf7fe3a407c764f643585d050c16f5fb56503c"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 23 12:02:21 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 23 12:02:21 2010 -0700"
      },
      "message": "am caaf7fe3: am 271c1bfd: Merge \"Handle the camera open failure better.\" into gingerbread\n\nMerge commit \u0027caaf7fe3a407c764f643585d050c16f5fb56503c\u0027\n\n* commit \u0027caaf7fe3a407c764f643585d050c16f5fb56503c\u0027:\n  Handle the camera open failure better.\n"
    },
    {
      "commit": "3f51fa78ada0e064d23db5961337280c267cc2c0",
      "tree": "c85bc097a7db110f9fcb9269a100090e3f60e88c",
      "parents": [
        "b80e610b070c2cec98a228a8aec450dc24a5f90a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 18 03:32:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 23 10:34:05 2010 -0700"
      },
      "message": "Runtime dump support for MediaWriter\n\nChange-Id: I10b2c474de612ee4cef4b7c9eae2ee1dd8c2e895\n"
    },
    {
      "commit": "b80e610b070c2cec98a228a8aec450dc24a5f90a",
      "tree": "24a68ee70207dc82d47629a47341f64b47228e66",
      "parents": [
        "72ecb00a89b7a49eadb9c3bb880102eef97c8eb6",
        "58d3bd08107f44cba79938dd8430e69c0fda4202"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Aug 22 18:31:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 22 18:31:15 2010 -0700"
      },
      "message": "Merge \"Visualizer: replace the FFT implementation with a faster one.\" into gingerbread"
    },
    {
      "commit": "349250f3b64421f59439355c80a4540fbb34dda5",
      "tree": "2f95cea2c082c4035e62cb766d3089a809f6e80c",
      "parents": [
        "0b6d4aed033c774f044691d163040c2e8a115f8a",
        "c8d2fa704abebdbf0bd8aac185216dc068950217"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Aug 21 09:43:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:43:41 2010 -0700"
      },
      "message": "am c8d2fa70: am cbd038fe: Merge \"Make MediaWriter stop and pause return errors if necessary\" into gingerbread\n\nMerge commit \u0027c8d2fa704abebdbf0bd8aac185216dc068950217\u0027\n\n* commit \u0027c8d2fa704abebdbf0bd8aac185216dc068950217\u0027:\n  Make MediaWriter stop and pause return errors if necessary\n"
    },
    {
      "commit": "fc5d0cf56401a56f58b12412617e4b84bea2771b",
      "tree": "07e69da39fdc565ffaf3f31fa5db6effdf1cca8e",
      "parents": [
        "08b352be43845d413086ba1dd48db54fe41a309d",
        "b29ebd397e25a7176bcc1c81980f17b0190ebe7f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Sat Aug 21 09:41:54 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:41:54 2010 -0700"
      },
      "message": "am b29ebd39: am f0ad5484: Merge \"In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.\" into gingerbread\n\nMerge commit \u0027b29ebd397e25a7176bcc1c81980f17b0190ebe7f\u0027\n\n* commit \u0027b29ebd397e25a7176bcc1c81980f17b0190ebe7f\u0027:\n  In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.\n"
    },
    {
      "commit": "e49564e0f710ba4a1405cfdfde068cb776ee474e",
      "tree": "e3dfafb6e37ed94f247cd87313a88174ca943bef",
      "parents": [
        "a6a0fe436b37693a57d23be99da89024cdc99c9d",
        "821afa9aec8d3a4ffd2e72ce797d8097eaf13973"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Aug 21 09:41:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:41:12 2010 -0700"
      },
      "message": "am 821afa9a: am 54d41379: Merge \"Add OBB flags to support overlays\" into gingerbread\n\nMerge commit \u0027821afa9aec8d3a4ffd2e72ce797d8097eaf13973\u0027\n\n* commit \u0027821afa9aec8d3a4ffd2e72ce797d8097eaf13973\u0027:\n  Add OBB flags to support overlays\n"
    },
    {
      "commit": "feb02e7695c99d6eab0884f2424cff5bf48f4df4",
      "tree": "ea768208836244e89363d14d13a1c88aab5274f3",
      "parents": [
        "37444f4239b26944d24f039c537d411ac7004243",
        "d25f0aea1cebe93aff55a75374e172f87115f1b3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 21 09:35:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:35:13 2010 -0700"
      },
      "message": "am d25f0aea: am 99401b29: Merge \"Add support for throttling motion events.\" into gingerbread\n\nMerge commit \u0027d25f0aea1cebe93aff55a75374e172f87115f1b3\u0027\n\n* commit \u0027d25f0aea1cebe93aff55a75374e172f87115f1b3\u0027:\n  Add support for throttling motion events.\n"
    },
    {
      "commit": "be857d42849eaaa554d4772dbba7755f8a0f3547",
      "tree": "e6fa28c1620c2908a00b035db8d7a5da68095eae",
      "parents": [
        "6be237120e9673e3cfc5243da5bbca287effcf09"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 18 15:59:25 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 20 13:17:12 2010 -0700"
      },
      "message": "Reorganize MountService IPC\n\nRemove auto-generated AIDL files and replace them with manually edited\n.java and .cpp/.h files so that binder calls can be made from either\nJava or C++.\n\nUpdate the makefiles to not attempt to generate the AIDL files and also\nremove the old auto-generated .java files.\n\nPut all the storage-related C++ things in libstorage so that we don\u0027t\npollute other libraries.\n\nChange-Id: I82d1631295452709f12ff1270f36c3100e652806\n"
    },
    {
      "commit": "727f658e81acadd082d2a658ece2b0b45e62c0fc",
      "tree": "7ee4792c4fd58f9bcff04081430d9e8d1661574f",
      "parents": [
        "437e6c49f1052184e01231e6f33ad21c91fc2d36",
        "96624731c31de41968539b7c95b124d0845929e4"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 11:35:38 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 20 11:35:38 2010 -0700"
      },
      "message": "Merge \"Added downsample()\""
    },
    {
      "commit": "97a56269d06770712f9da7a2a29385012ec9714e",
      "tree": "e7f5e038f6613623eecb95fbdc20b7b6caf737ec",
      "parents": [
        "581f78615a9dc65ee264b3619ef6cdd0b0e8355c",
        "454630f23784afcf3dd6fc58becbb9fb6aa878a9"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Aug 20 11:19:51 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 20 11:19:51 2010 -0700"
      },
      "message": "Merge \"Add camera fps range API.\" into gingerbread"
    },
    {
      "commit": "454630f23784afcf3dd6fc58becbb9fb6aa878a9",
      "tree": "d5ee24d80d56a0532e23c9bf92a65103161390e9",
      "parents": [
        "eba1274978911ea188eead128645299669d02f60"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 11 16:48:05 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Aug 20 11:14:17 2010 -0700"
      },
      "message": "Add camera fps range API.\n\nOriginal preview frame rate API assumes the frame rate\nis fixed. It does not not work with auto frame rate camera.\n\nChange-Id: I38f7122ac8ec844ffd63558dc0763ffa17b0926a\n"
    },
    {
      "commit": "96624731c31de41968539b7c95b124d0845929e4",
      "tree": "8de0119dda40c8e4de0893102d890c4353fafe4b",
      "parents": [
        "d1fbdf1a3f1e0609756f01e7eae5a8334777fa06"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 17:45:45 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 10:54:59 2010 -0700"
      },
      "message": "Added downsample()\n\nAdded a downsample function which downsamples the source image\nstarting at an offset and skipping every few pixels. Currently\nno low pass filtering is done, but it should be added later.\n\nChange-Id: Iec34092c536bfc661a15521e6a1ef2ef3f815c61\n"
    },
    {
      "commit": "437e6c49f1052184e01231e6f33ad21c91fc2d36",
      "tree": "256cbfc5abacc7e67e32b117cc04e0e1732b52a5",
      "parents": [
        "0dc4d15cdc1f7078d6e2ed8209aa41b5afd3d4ba",
        "d1fbdf1a3f1e0609756f01e7eae5a8334777fa06"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 10:41:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 20 10:41:08 2010 -0700"
      },
      "message": "Merge \"const correctness, validPixel test.\""
    },
    {
      "commit": "0ca7aae911be0a9585cafce6eb614b3d69607e10",
      "tree": "ce9abfc3be3a88736c395b78ecf76c19a452263c",
      "parents": [
        "cdea9193f2745fd46e69858a7c5570d95f8182dc",
        "33992d4195fe55f42ba6919f5a07707a51a12d5d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 19 23:43:19 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 19 23:43:19 2010 -0700"
      },
      "message": "am 33992d41: am 72e0b2ab: Merge \"Fix some input device mapping bugs with certain drivers.\" into gingerbread\n\nMerge commit \u002733992d4195fe55f42ba6919f5a07707a51a12d5d\u0027\n\n* commit \u002733992d4195fe55f42ba6919f5a07707a51a12d5d\u0027:\n  Fix some input device mapping bugs with certain drivers.\n"
    },
    {
      "commit": "271c1bfd60eaa20c3f37e685864d992e0770ac00",
      "tree": "1b6ca1cfce57d3af44fd1dc21a72127aeefb210b",
      "parents": [
        "2f6d975b93bbc5b55c35a00d913ee38ad9b76401",
        "e7044384b24051c9ac1ceef951beb97bbf8cf0f3"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 21:45:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 21:45:46 2010 -0700"
      },
      "message": "Merge \"Handle the camera open failure better.\" into gingerbread"
    },
    {
      "commit": "e7044384b24051c9ac1ceef951beb97bbf8cf0f3",
      "tree": "b91aefc34bc41e167480c6f9cb2c1de3743fafd0",
      "parents": [
        "eba1274978911ea188eead128645299669d02f60"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 17 15:45:37 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 21:44:06 2010 -0700"
      },
      "message": "Handle the camera open failure better.\n\nCheck if camera hardware is NULL to avoid mediaserver crash.\n\nChange-Id: Ibde0251f30bdb6b36a5d5380222d7be25ec9449c\n"
    },
    {
      "commit": "d1fbdf1a3f1e0609756f01e7eae5a8334777fa06",
      "tree": "3bf54042f300206250d325c6a7193d446858d343",
      "parents": [
        "7d73206ab263e1114b4711912ac3eb786f91b6c5"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 17:34:52 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 18:26:58 2010 -0700"
      },
      "message": "const correctness, validPixel test.\n\n- made width(), height() const member functions.\n- added validPixel() which returns true if pixel is in the allowed range.\n- now testing validPixel in get/setPixelValue\n\nChange-Id: I1dee5060bd4f8dcbdcd542ec4647ea328f0185c3\n"
    },
    {
      "commit": "cbd038fe207f183bc7e0a610973473f7c2e9d118",
      "tree": "ad296b093ef6f0ba129be08686553f0e1f5cb979",
      "parents": [
        "545eab8ae80b070177cc442931eadc8cd980de26",
        "d036662470ceb6b20b0591b7d4123f2db911536d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 19 13:59:32 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 13:59:32 2010 -0700"
      },
      "message": "Merge \"Make MediaWriter stop and pause return errors if necessary\" into gingerbread"
    },
    {
      "commit": "d036662470ceb6b20b0591b7d4123f2db911536d",
      "tree": "6b751779eb0cc241a42034bf4e3ef74ec1691371",
      "parents": [
        "54d41379357d1d800d0a7bd7c5dc56111710482a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 18 19:10:39 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 19 13:33:13 2010 -0700"
      },
      "message": "Make MediaWriter stop and pause return errors if necessary\n\no Make the API consistent with SF framework, which the MediaSource\n  provides a return status for stop\n\no Also, helps to convey errors that occurred right when a\n  premature stop() is called, leading to a potentially\n  mal-formed output file.\n\nChange-Id: I52a932345f38570fdf8ea04d67d73dd94ccd30ef\n"
    },
    {
      "commit": "eba1274978911ea188eead128645299669d02f60",
      "tree": "9432cde7f646ecbddae7678bf39b4e5dd96f7d2e",
      "parents": [
        "ccb915963e70c9b4e8fc47b5af97ab37b979195a",
        "6c008b86409202b00fcfc2ca9db3a026c20ccaf7"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 11:08:39 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 11:08:39 2010 -0700"
      },
      "message": "Merge \"Adding getSupportedPreviewSizes to CameraParameters.DO NOT MERGE\" into gingerbread"
    },
    {
      "commit": "ccb915963e70c9b4e8fc47b5af97ab37b979195a",
      "tree": "d03b17d7575b712bad18795e7ec50891655b6668",
      "parents": [
        "f0ad54846168f07fc1fd7f18cde93deea1559f86",
        "0de0c4960da1ec2f6aeada9718755c37cfee45e0"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 11:08:36 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 11:08:36 2010 -0700"
      },
      "message": "Merge \"Adding getSupportedPictureSizes to CameraParameters.DO NOT MERGE\" into gingerbread"
    }
  ],
  "next": "eef3c33e5604ae6304364b7aa6337616e2d4c61e"
}
