)]}'
{
  "log": [
    {
      "commit": "fceef46513db3507b413f604cea89e3c7f352663",
      "tree": "3155d044d58c5af47cd59663ae7dbc242e5d3102",
      "parents": [
        "15727818edf0c9bd88303656ccb43fccd2515007"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 14 15:35:17 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 18 16:12:38 2010 -0400"
      },
      "message": "MTP: More prototyping work:\n\nNew media scanner test program\nMedia scanner now cleans up after files that no longer exist\nSeparate database table for audio files\nExtract metadata from audio files with libstagefright\n\nChange-Id: I2bd0fe877836c741658e72fcfeb89c11be0d9b41\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "15727818edf0c9bd88303656ccb43fccd2515007",
      "tree": "711b2f492c7eb905efcfe8c0e49b0c6b52a4007f",
      "parents": [
        "595f9db22d8161b1dd5cd178d8ae829f51308303",
        "e1f61055b4abb96a86d1ff24b5a7777dfe40fe5f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 17 17:35:21 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 17 17:35:21 2010 -0700"
      },
      "message": "am d4a5ea29: am 2b2529f2: Merge \"fix some bugs in SharedBufferStack::resize\" into kraken\n"
    },
    {
      "commit": "e1f61055b4abb96a86d1ff24b5a7777dfe40fe5f",
      "tree": "8674f05b32d3abbadbbdc251e65c9936bc135ab2",
      "parents": [
        "d1b449aad6c087a69f5ec66b7facb2845b73f1cb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 17 17:27:26 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 17 17:27:26 2010 -0700"
      },
      "message": "fix some bugs in SharedBufferStack::resize\n\nadded buffers should now be labeled properly.\n\nChange-Id: I28aa753fbe89ab89134e7753575319478934c7fa\n"
    },
    {
      "commit": "595f9db22d8161b1dd5cd178d8ae829f51308303",
      "tree": "f0b1cfda38f4432737b220b92925f95c7ad2fa83",
      "parents": [
        "21cd2bd40860be223e5b205974fa299c11cc80fa",
        "d1b449aad6c087a69f5ec66b7facb2845b73f1cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 17 09:22:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 17 09:22:01 2010 -0700"
      },
      "message": "am f62b6ff9: am eb8f850d: Fix issue 2553359: Pandora does not work well with Passion deskdock / Cardock.\n"
    },
    {
      "commit": "21cd2bd40860be223e5b205974fa299c11cc80fa",
      "tree": "83096bcf4df010945f046b7b09520139c4f500d0",
      "parents": [
        "49e21bb715d356b23ea8740ee22f8da5fc450906",
        "ae77ffa16bda593fb3751e41d45327d867f3c8e1"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon May 17 09:21:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 17 09:21:13 2010 -0700"
      },
      "message": "am 8dc80423: am ae7ca4c3: Fix build error.\n"
    },
    {
      "commit": "49e21bb715d356b23ea8740ee22f8da5fc450906",
      "tree": "0de05b21b350f783b7f6ab9e10b291eed80b9553",
      "parents": [
        "64a44220725dd05367beb15fd530b6c900f24e1a",
        "09a2ab9dfe5c8fe74703b9894d930b1b1dbf0c11"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon May 17 09:21:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 17 09:21:03 2010 -0700"
      },
      "message": "am a3b5ff07: am e339c5ed: Add camera focus distances API.\n"
    },
    {
      "commit": "64a44220725dd05367beb15fd530b6c900f24e1a",
      "tree": "1d6bab09ca2e3589b9f1de39803fcba9dae6a1d7",
      "parents": [
        "c151787b4fc0f0e362d7730e1919fe04e400687d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun May 16 16:39:32 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 17 10:57:09 2010 -0400"
      },
      "message": "Add -p option to mtptest program to run in PTP mode instead of MTP\n\nChange-Id: Idbd1437756daab8d6141db49b07d4eb0814c9e7e\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d1b449aad6c087a69f5ec66b7facb2845b73f1cb",
      "tree": "b16f7d28fdac76c90d66be56161116fe09822992",
      "parents": [
        "ae77ffa16bda593fb3751e41d45327d867f3c8e1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 14 03:26:45 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 17 02:23:47 2010 -0700"
      },
      "message": "Fix issue 2553359: Pandora does not work well with Passion deskdock / Cardock.\n\nThe problem is due to a too big difference between the buffer size used at the hardware interface and at the A2DP interface.\nWhen no resampling occurs we don\u0027t notice problems but the timing is very tight. As soon as resampling is activated, the AudioTrack underruns.\nThis is because the AudioTrack buffers are not resized when moving the AudioTrack from hardware to A2DP output.\nThe AudioTrack buffers are calculated based on a hardware output buffer size of 3072 bytes. Which is much less than the A2DP output buffer size (10240).\n\nThe solution consists in creating new tracks with new buffers in AudioFlinger when the A2DP output is opened\ninstead of just transfering active tracks from hardware output mixer thread to the new A2DP output mixer thread.\nTo avoid synchronization issues between mixer threads and client processes, this is done by invalidating tracks\nby setting a flag in their control block and having AudioTrack release the handle on this track (IAudioTrack)\nand create a new IAudioTrack when this flag is detected next time obtainBuffer() or start() is executed.\n\nAudioFlinger modifications:\n- invalidate the tracks when setStreamOutput() is called\n- make sure that notifications of output opening/closing and change of stream type to output mapping are sent synchronously to client process.\nThis is necessary so that AudioSystem has the new stream to output mapping when the AudioTrack detects the invalidate flag in the client process.\nPreviously their were sent when the corresponding thread loop was executed.\n\nAudioTrack modifications:\n- move frame count calculation and verification from set() to createTrack() so that is is updated every time a new IAudioTrack is created.\n- detect track invalidate flag in obtainBuffer() and start() and create a new IAudioTrack.\n\nAudioTrackShared modifications\n- group all flags (out, flowControlFlag, forceReady...) into a single bit filed to save space.\n\nChange-Id: I9ac26b6192230627d35084e1449640caaf7d56ee\n"
    },
    {
      "commit": "ae77ffa16bda593fb3751e41d45327d867f3c8e1",
      "tree": "bc71c40bbbbce19b827c407fd901c03a3cf87e81",
      "parents": [
        "09a2ab9dfe5c8fe74703b9894d930b1b1dbf0c11"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat May 15 13:05:04 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat May 15 13:06:19 2010 +0800"
      },
      "message": "Fix build error.\n\nOriginal name INFINITY conflicts with the macro in math.h.\n\nChange-Id: I9845ed84fca17813dd971239a902cc1e0bad1e3e\n"
    },
    {
      "commit": "09a2ab9dfe5c8fe74703b9894d930b1b1dbf0c11",
      "tree": "0852633ee4e6626010e54c3344fee7483a76cb12",
      "parents": [
        "ea10bc6158caa9f595c85a3dc3517d88ee989001"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu May 13 19:31:02 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat May 15 12:40:54 2010 +0800"
      },
      "message": "Add camera focus distances API.\n\nApplications can use this API to estimate the distance\nbetween the subject and the camera.\n\nbug:1955650\nChange-Id: Ie6c8ea4971759cab6c9bcdda2c5ceb5925791c27\n"
    },
    {
      "commit": "c151787b4fc0f0e362d7730e1919fe04e400687d",
      "tree": "da85d0a56615daf324ccce9eeb8544906185f0ea",
      "parents": [
        "e0ddfe33b9480acf3d8c3941f96bdc262d0abc47",
        "ea10bc6158caa9f595c85a3dc3517d88ee989001"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 16:34:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 16:34:24 2010 -0700"
      },
      "message": "am bc30d1d8: am 5d75a181: am a5cd816c: am eb9128f9: Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n"
    },
    {
      "commit": "ea10bc6158caa9f595c85a3dc3517d88ee989001",
      "tree": "6514ef7d81dc9272abb2c9cc5b05148f391b9f2d",
      "parents": [
        "a326071ff872d5a197efbf27b9ab6653a90f0734",
        "c0b42f27a36c96b0ce16ade57c26ff1decb4bb72"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 16:30:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 16:30:29 2010 -0700"
      },
      "message": "am a5cd816c: am eb9128f9: Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n\nMerge commit \u0027a5cd816c720ed87b91a33aa5d000a0d308c74453\u0027 into kraken\n\n* commit \u0027a5cd816c720ed87b91a33aa5d000a0d308c74453\u0027:\n  Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n"
    },
    {
      "commit": "c0b42f27a36c96b0ce16ade57c26ff1decb4bb72",
      "tree": "5b7c9790f0be90552ce9a31e6871f2a3bfbc750a",
      "parents": [
        "4ac3585263ad59def5cf14756347cecab43e6e67",
        "1edbcb2bb9988cc7cb54a865aaea4613bdd53a9d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 16:28:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 16:28:09 2010 -0700"
      },
      "message": "am eb9128f9: Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n\nMerge commit \u0027eb9128f9b0ee660504621381fd96f82d5bf8a3fd\u0027 into froyo-plus-aosp\n\n* commit \u0027eb9128f9b0ee660504621381fd96f82d5bf8a3fd\u0027:\n  Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n"
    },
    {
      "commit": "1edbcb2bb9988cc7cb54a865aaea4613bdd53a9d",
      "tree": "962de13061feaa0d428f33f8c94ced16c8bcf343",
      "parents": [
        "a945bfd91aa291fba4d9201ffcb38fce40eab7fe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 15:28:51 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 15:32:21 2010 -0700"
      },
      "message": "Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n\nChange-Id: I576178144ffd753b809e1c4ae269ffc3aa34b511\nrelated-to-bug: 2686604\nQA-Impact: well, ..., everything related to streaming mpeg4/aac content over http\n"
    },
    {
      "commit": "e0ddfe33b9480acf3d8c3941f96bdc262d0abc47",
      "tree": "fc2b3056fc0987eac336ec3ca0ebeab381ecf36d",
      "parents": [
        "f44cdd80b091661cdce195f29982ab9639bb821f",
        "a326071ff872d5a197efbf27b9ab6653a90f0734"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 12:22:18 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 12:22:18 2010 -0700"
      },
      "message": "am ce3d8b31: am d95266c6: Merge \"Detect and handle premature termination of a recording session\" into kraken\n"
    },
    {
      "commit": "a326071ff872d5a197efbf27b9ab6653a90f0734",
      "tree": "c787182efe211a195378d13aa66dc9116e06d998",
      "parents": [
        "1999e8d16d15b60b983595d4bf44ccf67cd86732",
        "f0ce2fb0c7bf3a414279e5aba61105f3d9025c0e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 12:19:17 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 14 12:19:17 2010 -0700"
      },
      "message": "Merge \"Detect and handle premature termination of a recording session\" into kraken"
    },
    {
      "commit": "f44cdd80b091661cdce195f29982ab9639bb821f",
      "tree": "aaf28af1c05cea282ecc713b28a7a1969694be65",
      "parents": [
        "09943dd3797bb981a74ce0c233843868144b257a",
        "1999e8d16d15b60b983595d4bf44ccf67cd86732"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri May 14 12:08:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 12:08:24 2010 -0700"
      },
      "message": "am 9c192e44: am 29f5d9b6: Merge \"Fix deadlock if the last reference of ICameraClient is removed in ICamera::connect()\" into kraken\n"
    },
    {
      "commit": "1999e8d16d15b60b983595d4bf44ccf67cd86732",
      "tree": "2d413bfc8b71ffbc93d3824e0da87406d4fd0307",
      "parents": [
        "3c0131f02b6f008321608044c53bccce2ac5f6dd",
        "d06618ee31c11ac7ac6698f95444041a4785a5ab"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri May 14 12:05:06 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 14 12:05:06 2010 -0700"
      },
      "message": "Merge \"Fix deadlock if the last reference of ICameraClient is removed in ICamera::connect()\" into kraken"
    },
    {
      "commit": "f0ce2fb0c7bf3a414279e5aba61105f3d9025c0e",
      "tree": "4fea53e0f6cd8068d0342828c267fe734925f2f8",
      "parents": [
        "3c0131f02b6f008321608044c53bccce2ac5f6dd"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 11:48:00 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 11:48:00 2010 -0700"
      },
      "message": "Detect and handle premature termination of a recording session\n\nChange-Id: Ifb83b19f3e68580345b23efed5d5956fb81baeb8\n"
    },
    {
      "commit": "09943dd3797bb981a74ce0c233843868144b257a",
      "tree": "c6984fd16fbaf3e7ce5b5b157ffbd0aac0b12dea",
      "parents": [
        "eae0edc9003849843889531283d9e4e086ec66ed",
        "3c0131f02b6f008321608044c53bccce2ac5f6dd"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 10:55:52 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 10:55:52 2010 -0700"
      },
      "message": "am 612058d1: am 9db798d0: Audio/video initial recording time synchronization\n"
    },
    {
      "commit": "eae0edc9003849843889531283d9e4e086ec66ed",
      "tree": "5cba467a106e5990711cf38d438721f2d2662a91",
      "parents": [
        "f00668f97ad5098c38d46637b9c24f3baea38ac3",
        "d599cd4573b5a2d5914c5040e0565ef866749b77"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 10:53:02 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 10:53:02 2010 -0700"
      },
      "message": "am 8b3611ee: am 1824486e: Handle recording file size and/or duration limit\n"
    },
    {
      "commit": "3c0131f02b6f008321608044c53bccce2ac5f6dd",
      "tree": "cf03faa5dc5f5323fdf16eb1374c12623b6f7961",
      "parents": [
        "d599cd4573b5a2d5914c5040e0565ef866749b77"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 11:47:36 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 10:51:12 2010 -0700"
      },
      "message": "Audio/video initial recording time synchronization\n\nChange-Id: Iac58b63d474fe09c1d36ba6ecde91dafbb7fef9a\n"
    },
    {
      "commit": "d599cd4573b5a2d5914c5040e0565ef866749b77",
      "tree": "f7b799092087742c9cfdda8b21a141f9934cf0ae",
      "parents": [
        "2e90514be4c98b5fa6e1df5f2049a5e005a4263d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 14:57:02 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 10:46:56 2010 -0700"
      },
      "message": "Handle recording file size and/or duration limit\n\nChange-Id: Ib9ed1f3ebd8fef550cc130a7ef11f2905fa9aedc\n"
    },
    {
      "commit": "f00668f97ad5098c38d46637b9c24f3baea38ac3",
      "tree": "a5be0b0ba4ef5081321fb873f8d4b86b4b5c309b",
      "parents": [
        "edba6383f8533608c17e76b4c253e21190602b2c",
        "2e90514be4c98b5fa6e1df5f2049a5e005a4263d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 14 09:49:52 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 09:49:52 2010 -0700"
      },
      "message": "am 63c93077: am 21a534d9: am 1d628c5d: merge from open-source master\n"
    },
    {
      "commit": "2e90514be4c98b5fa6e1df5f2049a5e005a4263d",
      "tree": "5a46f118a7f05da39b068489b61209ec63f23034",
      "parents": [
        "45df6a2a25ff36606a5301155d8d97e9bf80d00b",
        "4ac3585263ad59def5cf14756347cecab43e6e67"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 14 09:46:11 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 09:46:11 2010 -0700"
      },
      "message": "am 1d628c5d: merge from open-source master\n\nMerge commit \u00271d628c5d3dd7998b29c339292a2dc391015d0782\u0027 into kraken\n\n* commit \u00271d628c5d3dd7998b29c339292a2dc391015d0782\u0027:\n  Accept media files by file extension in case insensitive manner.\n"
    },
    {
      "commit": "4ac3585263ad59def5cf14756347cecab43e6e67",
      "tree": "89ed91b26ca3e58f51278c0c58e77f56f1a766d8",
      "parents": [
        "a945bfd91aa291fba4d9201ffcb38fce40eab7fe",
        "49475772e0d3c38ab1246deac3d5e5bc6c2bb4e6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 14 09:44:36 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 14 09:44:36 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I934cf85c4673f9ca3a9549c2074907ad572310f4\n"
    },
    {
      "commit": "edba6383f8533608c17e76b4c253e21190602b2c",
      "tree": "9c3495b68087dac32814d8cec9e3a1a33b6e35e6",
      "parents": [
        "7850ef999740f214a1990a9c090d3f3865d435aa",
        "45df6a2a25ff36606a5301155d8d97e9bf80d00b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 14 09:42:57 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 09:42:57 2010 -0700"
      },
      "message": "am 10fde074: am 9f0810e8: Merge \"AudioFlinger: rename variables to clarify reference to track channel count or channel mask\" into kraken\n"
    },
    {
      "commit": "49475772e0d3c38ab1246deac3d5e5bc6c2bb4e6",
      "tree": "aac540736934978e6e10346ec3331c98de5f713f",
      "parents": [
        "eb839f5f05b7d0c4558bf845816fd3fe6201e15e",
        "fc1c7b940c84793ad262a345af117c482a86acec"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri May 14 09:06:43 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri May 14 09:06:43 2010 -0700"
      },
      "message": "Merge \"Accept media files by file extension in case insensitive manner.\""
    },
    {
      "commit": "7850ef999740f214a1990a9c090d3f3865d435aa",
      "tree": "2320628e762e31b799c21f3a2d8177c271e47656",
      "parents": [
        "3c6d0f4c956494241c0c243b079f42049d832d7d"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 14 10:10:36 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 14 10:10:36 2010 -0400"
      },
      "message": "Move MTP code to the android namespace\n\nChange-Id: I5da48038fd5e4cdeefaeba42cdc74eb588b3448d\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "45df6a2a25ff36606a5301155d8d97e9bf80d00b",
      "tree": "5a7046dc5d6e5727fa7e2ea01b42f9aa06f45201",
      "parents": [
        "65ae665befd929efd1a7d1c9addac41c699f04b2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 14 05:45:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 14 05:45:46 2010 -0700"
      },
      "message": "AudioFlinger: rename variables to clarify reference to track channel count or channel mask\n\nSome variables and structure members should be renamed to reflect the fact that they contain the\nnumber of channels in a track (channel count) or the actual channels used by a track (channel mask).\nEspecially member \"channels\" of track control block (struct audio_track_cblk_t) is actually the\nnumber of channels (channels count).\n\nChange-Id: I220c8dede9fc00c8a5693389e790073b6ed307b8\n"
    },
    {
      "commit": "d06618ee31c11ac7ac6698f95444041a4785a5ab",
      "tree": "03e2f129897943b81f013ae59f6d6d507c28f4bf",
      "parents": [
        "65ae665befd929efd1a7d1c9addac41c699f04b2"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu May 13 15:14:24 2010 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri May 14 11:34:20 2010 +0800"
      },
      "message": "Fix deadlock if the last reference of ICameraClient is removed in\nICamera::connect()\n\nChange-Id: I34ab3e4f07435c62168175e9bb159022c8fb99f4\n"
    },
    {
      "commit": "3c6d0f4c956494241c0c243b079f42049d832d7d",
      "tree": "f062f082b87143de8c50e4ec898d130e6dabe7c5",
      "parents": [
        "67589f441aca391c27244cd231c2d770a9fe203d",
        "65ae665befd929efd1a7d1c9addac41c699f04b2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 16:43:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 13 16:43:17 2010 -0700"
      },
      "message": "am 79dfb675: am ffd104a9: Merge \"Remove dummy surface in CameraSource\" into kraken\n"
    },
    {
      "commit": "67589f441aca391c27244cd231c2d770a9fe203d",
      "tree": "edc874b7a9545ef64919166acf9b43dd9e16eb79",
      "parents": [
        "16864bae0f51c32c456da2c43adf7a057c0c4882"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 13 16:28:00 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 13 16:28:00 2010 -0400"
      },
      "message": "Exclude mtptest program from simulator builds.\n\nChange-Id: Ia9751a06d7607363e8c16b71f6f3c524833395a0\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "16864bae0f51c32c456da2c43adf7a057c0c4882",
      "tree": "87eb11d62168084c9e63cdd2bf5fd5d35a573df7",
      "parents": [
        "328523627293790cbf485fa6095b38a5fdb2118e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 11 17:16:59 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 13 15:36:47 2010 -0400"
      },
      "message": "Checkpoint work on MTP and PTP investigation.\n\nThis change includes work in progress on a C++ library for both host and device\nMTP and PTP support.\nCurrently the makefile builds two test programs:\n\nmtptest - a command line test program that implements a small subset of device side MTP.\nRequires a kernel driver that has not been checked in yet.\n\nptptest - a host tool to test USB host support for detecting and communicating with\ndigital cameras over PTP.  Runs on Linux host.\n\nLater this will be reformulated as a native library that will be used in the media process.\n\nChange-Id: I81aab279975b600b59d99013ab97f9adf0b58da7\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "65ae665befd929efd1a7d1c9addac41c699f04b2",
      "tree": "caa60fa0487dcfaa5aa965ee33ac857c1b36b122",
      "parents": [
        "7838252956e00518afce33f9591252c5c8f9dbac"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 12:07:32 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 12:08:29 2010 -0700"
      },
      "message": "Remove dummy surface in CameraSource\n\nbug - 2680919\n\nChange-Id: Ia0308cf57fd67058b4dd0e042b3ce97f13df475f\n"
    },
    {
      "commit": "328523627293790cbf485fa6095b38a5fdb2118e",
      "tree": "c75466eb0bf56eb46fb468e1066213b0ff6475ca",
      "parents": [
        "1b8b4c945eb3e9827e94f551e05ec1329d2234a9",
        "7838252956e00518afce33f9591252c5c8f9dbac"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 13 11:34:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 13 11:34:40 2010 -0700"
      },
      "message": "am 9df829bf: am fae47fd0: am 28fadef2: am 3c78a1b5: Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.\n"
    },
    {
      "commit": "7838252956e00518afce33f9591252c5c8f9dbac",
      "tree": "c75466eb0bf56eb46fb468e1066213b0ff6475ca",
      "parents": [
        "f8fb8b856427e9b1c406d516a114a9f37cfea4f2",
        "a945bfd91aa291fba4d9201ffcb38fce40eab7fe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 13 11:18:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 13 11:18:24 2010 -0700"
      },
      "message": "am 28fadef2: am 3c78a1b5: Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.\n\nMerge commit \u002728fadef2ede2d74e9526266e779553bbd1dc66f4\u0027 into kraken\n\n* commit \u002728fadef2ede2d74e9526266e779553bbd1dc66f4\u0027:\n  Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.\n"
    },
    {
      "commit": "a945bfd91aa291fba4d9201ffcb38fce40eab7fe",
      "tree": "daf784212302922f821dbcf99d85e55697ac610d",
      "parents": [
        "d2333bda49f9d76f1b30b81dfc093d407bc6dbf0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 13 09:15:21 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 13 09:19:35 2010 -0700"
      },
      "message": "Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.\n\nChange-Id: Ie084ed4df5a5d286abd36d9149c2138f8e7ed08a\nrelated-to-bug: 2682221\nQA-impact: none\n"
    },
    {
      "commit": "1b8b4c945eb3e9827e94f551e05ec1329d2234a9",
      "tree": "608f5e3e1a5f2d26004da2dc01aa60e844e94d71",
      "parents": [
        "81274bf56f309ddc0ee3e2215166559be28136e1",
        "f8fb8b856427e9b1c406d516a114a9f37cfea4f2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 18:31:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 18:31:51 2010 -0700"
      },
      "message": "am fb6bd833: am 7406eafe: should fix the build\n"
    },
    {
      "commit": "f8fb8b856427e9b1c406d516a114a9f37cfea4f2",
      "tree": "608f5e3e1a5f2d26004da2dc01aa60e844e94d71",
      "parents": [
        "5cc61b153dabc4e188302e85828c06cf9995b410"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 18:26:13 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 18:26:13 2010 -0700"
      },
      "message": "should fix the build\n\nChange-Id: I9957fc43d5fce317479f6c55fb0b9612bff9a495\n"
    },
    {
      "commit": "81274bf56f309ddc0ee3e2215166559be28136e1",
      "tree": "fee298824d32c9a1a8301f527aca0320d4c6e105",
      "parents": [
        "5a835979b8066054d096f810a4a79c918e166309",
        "5cc61b153dabc4e188302e85828c06cf9995b410"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 18:04:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 18:04:39 2010 -0700"
      },
      "message": "am 19f64314: am 2f0e6753: Merge \"SharedBufferStack now can grow up to 16 buffers.\" into kraken\n"
    },
    {
      "commit": "5cc61b153dabc4e188302e85828c06cf9995b410",
      "tree": "fee298824d32c9a1a8301f527aca0320d4c6e105",
      "parents": [
        "8229dabcc36a015a6cf11a9b0b2e948ac0476552"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 07 15:58:44 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 17:28:20 2010 -0700"
      },
      "message": "SharedBufferStack now can grow up to 16 buffers.\n\nthere is a new resize() api, which currently only allows growing.\n\nChange-Id: Ia37b81b73be466d2491ffed7f3a23cd8e113c6fe\n"
    },
    {
      "commit": "5a835979b8066054d096f810a4a79c918e166309",
      "tree": "e3e1b775d2e5340dbfce10cfbdb606ef6fa8ad60",
      "parents": [
        "67c0cc91989eeb4bacb558ba0b6b115f8b5c145a",
        "8229dabcc36a015a6cf11a9b0b2e948ac0476552"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 09:24:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 09:24:35 2010 -0700"
      },
      "message": "am 1d0e5599: am 11777d6f: am b003ad17: am e0dc80f8: Merge \"Support for customizable socket-read timeouts through the HTTP response.\" into froyo\n"
    },
    {
      "commit": "67c0cc91989eeb4bacb558ba0b6b115f8b5c145a",
      "tree": "7eda15831da8fc44486086fd4974a9ba3557efa7",
      "parents": [
        "eb7a35f047090cf89f0da15c7193e95bd62e7ddd",
        "f5ef7f22bbf73ba5c3910096f8f7f84cc6e21039"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 09:24:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 09:24:28 2010 -0700"
      },
      "message": "am 286a6355: am b076e6f3: am 227e443a: am d6ad7c85: Merge \"Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)\" into froyo\n"
    },
    {
      "commit": "eb7a35f047090cf89f0da15c7193e95bd62e7ddd",
      "tree": "ec052ddb975e64a27fdf12ade7e24df07f899b04",
      "parents": [
        "fb2ab0fea6b8f84364fb68df4cecd1e8d93f4d1e",
        "83e5a900e5eccbd2af300c03d24d72365d0c8323"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed May 12 09:14:11 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 09:14:11 2010 -0700"
      },
      "message": "am 9813a3a2: am b3390135: am d8c33747: am 78624e41: Add remove method in CameraParameters class.\n"
    },
    {
      "commit": "8229dabcc36a015a6cf11a9b0b2e948ac0476552",
      "tree": "e3e1b775d2e5340dbfce10cfbdb606ef6fa8ad60",
      "parents": [
        "f5ef7f22bbf73ba5c3910096f8f7f84cc6e21039",
        "d2333bda49f9d76f1b30b81dfc093d407bc6dbf0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 07:55:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:55:48 2010 -0700"
      },
      "message": "am b003ad17: am e0dc80f8: Merge \"Support for customizable socket-read timeouts through the HTTP response.\" into froyo\n\nMerge commit \u0027b003ad17bffeba7875b9708ffeef2300ef28c916\u0027 into kraken\n\n* commit \u0027b003ad17bffeba7875b9708ffeef2300ef28c916\u0027:\n  Support for customizable socket-read timeouts through the HTTP response.\n"
    },
    {
      "commit": "f5ef7f22bbf73ba5c3910096f8f7f84cc6e21039",
      "tree": "7eda15831da8fc44486086fd4974a9ba3557efa7",
      "parents": [
        "83e5a900e5eccbd2af300c03d24d72365d0c8323",
        "96f52cde23982f668592418a9548045237d5e327"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 07:55:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:55:40 2010 -0700"
      },
      "message": "am 227e443a: am d6ad7c85: Merge \"Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)\" into froyo\n\nMerge commit \u0027227e443a43d70b9463b2e685688f73cfb1b72096\u0027 into kraken\n\n* commit \u0027227e443a43d70b9463b2e685688f73cfb1b72096\u0027:\n  Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)\n"
    },
    {
      "commit": "83e5a900e5eccbd2af300c03d24d72365d0c8323",
      "tree": "ec052ddb975e64a27fdf12ade7e24df07f899b04",
      "parents": [
        "ef9d0cd72e476a4b7556833fb09505a51b626797",
        "adbda96f6a05507788bb4163d7fbe8a95948f0a5"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed May 12 07:55:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:55:00 2010 -0700"
      },
      "message": "am d8c33747: am 78624e41: Add remove method in CameraParameters class.\n\nMerge commit \u0027d8c33747afbe98e893e0569f3bf45b67a9e8e728\u0027 into kraken\n\n* commit \u0027d8c33747afbe98e893e0569f3bf45b67a9e8e728\u0027:\n  Add remove method in CameraParameters class.\n"
    },
    {
      "commit": "fb2ab0fea6b8f84364fb68df4cecd1e8d93f4d1e",
      "tree": "9f2b89e1e148cc6fd333e8f5fa34f3ddb629dc9c",
      "parents": [
        "6039f3ae8758234ac41371618c539b7e2195a2c9",
        "ef9d0cd72e476a4b7556833fb09505a51b626797"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 13:39:52 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 11 13:39:52 2010 -0700"
      },
      "message": "am 144bb4fa: am 2cd841d4: Added initial validation on video/audio encoding parameters before/at start()\n"
    },
    {
      "commit": "6039f3ae8758234ac41371618c539b7e2195a2c9",
      "tree": "c8c57f6530ee1b053055ecc6376dcf82d9878a54",
      "parents": [
        "6dcf1e2437d41049021d8a0f04275a2cb9a26a6e",
        "7837c17063a4c50bc856ba59418516fdab731de7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 13:39:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 11 13:39:39 2010 -0700"
      },
      "message": "am 6d111efe: am b5e74239: Output streamable MP4 file during MP4 file recording\n"
    },
    {
      "commit": "ef9d0cd72e476a4b7556833fb09505a51b626797",
      "tree": "9f2b89e1e148cc6fd333e8f5fa34f3ddb629dc9c",
      "parents": [
        "7837c17063a4c50bc856ba59418516fdab731de7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 11:46:59 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 13:10:02 2010 -0700"
      },
      "message": "Added initial validation on video/audio encoding parameters before/at start()\n\nChange-Id: I1a40dd247202f70e3e5429d74533d349b88f1d54\n"
    },
    {
      "commit": "d2333bda49f9d76f1b30b81dfc093d407bc6dbf0",
      "tree": "64ae2fa639ef501ef1b6b8e1195020dc80aab53c",
      "parents": [
        "96f52cde23982f668592418a9548045237d5e327",
        "ba7c35717116e4dcb8242644f6ccf07c25c7b251"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 12:21:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 11 12:21:14 2010 -0700"
      },
      "message": "Merge \"Support for customizable socket-read timeouts through the HTTP response.\" into froyo"
    },
    {
      "commit": "ba7c35717116e4dcb8242644f6ccf07c25c7b251",
      "tree": "cabacf8bb7efd7d22fa408c8a3aacc8d476eee87",
      "parents": [
        "adbda96f6a05507788bb4163d7fbe8a95948f0a5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 11:10:21 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 11:10:21 2010 -0700"
      },
      "message": "Support for customizable socket-read timeouts through the HTTP response.\n\nSpecify a response header of \"X-SocketTimeout: 15\" to override the default timeout\nof 5 secs with a timeout of 15 seconds. Specify a negative value to disable the\ntimeout altogether.\n\nChange-Id: I545adf3d8b3f7efe5f8d081a641c6404440a77db\nrelated-to-bug: 2675721\n"
    },
    {
      "commit": "7837c17063a4c50bc856ba59418516fdab731de7",
      "tree": "c8c57f6530ee1b053055ecc6376dcf82d9878a54",
      "parents": [
        "b59c95419c48e6e54071b9e93177bd8f79471eb9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 07 10:26:24 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 10:36:43 2010 -0700"
      },
      "message": "Output streamable MP4 file during MP4 file recording\n\nWhen the reserved moov box space is not big enough,\nfall back to non-streamable MP4 file.\n\nChange-Id: I93382d037d657a3f3fe2af31e4ea26e1898b4d95\n"
    },
    {
      "commit": "96f52cde23982f668592418a9548045237d5e327",
      "tree": "a5502e0e6b6ca85dab03308a117324261a9caa00",
      "parents": [
        "adbda96f6a05507788bb4163d7fbe8a95948f0a5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 10:11:55 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 10:11:55 2010 -0700"
      },
      "message": "Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)\n\nChange-Id: I3c76d35da48e0964f7a0fa2816f8573b5e1a9436\nrelated-to-bug: 2674036\nQA-impact: low, only affects ogg-vorbis playback through http\n"
    },
    {
      "commit": "adbda96f6a05507788bb4163d7fbe8a95948f0a5",
      "tree": "b7ebd296b4ac9c9d665c36f993eae6a68b7840df",
      "parents": [
        "ee7ff20e69498ebd53dd9717a0f984188341a75e"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue May 11 12:11:56 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue May 11 12:54:14 2010 +0800"
      },
      "message": "Add remove method in CameraParameters class.\n\nbug:2672651\nChange-Id: I537c817b5ca6a3d925f22febe9a5769156354d00\n"
    },
    {
      "commit": "6dcf1e2437d41049021d8a0f04275a2cb9a26a6e",
      "tree": "ca00107c89c70dc74256c31004ced96c73deb010",
      "parents": [
        "5abd6d4be04ecd4fdcbdcc34bf2973bae231a3ad",
        "b59c95419c48e6e54071b9e93177bd8f79471eb9"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon May 10 20:07:54 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 20:07:54 2010 -0700"
      },
      "message": "am 0c3bba3e: am e1b2b3b0: Merge \"Add continuous focus mode constant.\" into kraken\n"
    },
    {
      "commit": "b59c95419c48e6e54071b9e93177bd8f79471eb9",
      "tree": "ca00107c89c70dc74256c31004ced96c73deb010",
      "parents": [
        "10a49e9d73f16f5f924c4013cba49a6ca4a28bac",
        "4bf7ace0d9d51cd47e00f92d26e1ee87909b3cc5"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon May 10 20:04:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 10 20:04:14 2010 -0700"
      },
      "message": "Merge \"Add continuous focus mode constant.\" into kraken"
    },
    {
      "commit": "5abd6d4be04ecd4fdcbdcc34bf2973bae231a3ad",
      "tree": "5211f1a7a91a62e05931f389233ec4912924f040",
      "parents": [
        "6ee57f713fa2dcd3c83c7fedff12b879c22749bb",
        "10a49e9d73f16f5f924c4013cba49a6ca4a28bac"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 10 11:37:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 11:37:00 2010 -0700"
      },
      "message": "am 98bb3eeb: am 4000e06e: Merge \"Metadata construction optimization\" into kraken\n"
    },
    {
      "commit": "10a49e9d73f16f5f924c4013cba49a6ca4a28bac",
      "tree": "5211f1a7a91a62e05931f389233ec4912924f040",
      "parents": [
        "b1ccb623d9db42c451aa9dd4e8cf0e76b164aa50",
        "be83c9e8c71ce16c0d0e9ed9df525510a49a541b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 10 11:33:25 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 10 11:33:25 2010 -0700"
      },
      "message": "Merge \"Metadata construction optimization\" into kraken"
    },
    {
      "commit": "6ee57f713fa2dcd3c83c7fedff12b879c22749bb",
      "tree": "47d13e256ed308eafc7815179266b73835c6e770",
      "parents": [
        "06fe8f1452a68cc4634c80616aadfac42ccd1ddb",
        "b1ccb623d9db42c451aa9dd4e8cf0e76b164aa50"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 10 09:56:11 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 09:56:11 2010 -0700"
      },
      "message": "am 23796f1e: am 248597ae: am 17078510: am d13efb20: Merge \"A new OggExtractor/VorbisDecoder combo to support approximate seeking.\" into froyo\n"
    },
    {
      "commit": "b1ccb623d9db42c451aa9dd4e8cf0e76b164aa50",
      "tree": "47d13e256ed308eafc7815179266b73835c6e770",
      "parents": [
        "35a055b8bfc6f3cbea409b2897caf936654519cb",
        "ee7ff20e69498ebd53dd9717a0f984188341a75e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 10 09:49:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 09:49:24 2010 -0700"
      },
      "message": "am 17078510: am d13efb20: Merge \"A new OggExtractor/VorbisDecoder combo to support approximate seeking.\" into froyo\n\nMerge commit \u00271707851090e6512a77247b0c260dd673ef687589\u0027 into kraken\n\n* commit \u00271707851090e6512a77247b0c260dd673ef687589\u0027:\n  A new OggExtractor/VorbisDecoder combo to support approximate seeking.\n"
    },
    {
      "commit": "4bf7ace0d9d51cd47e00f92d26e1ee87909b3cc5",
      "tree": "5c35174573a3375d382122de5879e0f10b4a6175",
      "parents": [
        "35a055b8bfc6f3cbea409b2897caf936654519cb"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu May 06 16:47:30 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon May 10 15:14:56 2010 +0800"
      },
      "message": "Add continuous focus mode constant.\n\nbug:2612447\nChange-Id: I9bc3f5a47ad50722a265d50b1d28fb82a2253dc9\n"
    },
    {
      "commit": "06fe8f1452a68cc4634c80616aadfac42ccd1ddb",
      "tree": "f2167d55486fd370d24e68aabe1ae37879cde8ec",
      "parents": [
        "c8e866331913821bef8e2f16101a29a8d8401081",
        "35a055b8bfc6f3cbea409b2897caf936654519cb"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Sun May 09 20:43:47 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun May 09 20:43:47 2010 -0700"
      },
      "message": "am c2ed1817: am e25cc656: Support multiple cameras in framework.\n"
    },
    {
      "commit": "35a055b8bfc6f3cbea409b2897caf936654519cb",
      "tree": "f2167d55486fd370d24e68aabe1ae37879cde8ec",
      "parents": [
        "d8a30349da270715156d3f658b165481ce10cf71"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu May 06 16:36:58 2010 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon May 10 11:21:14 2010 +0800"
      },
      "message": "Support multiple cameras in framework.\n\nChange-Id: I081f0fbdca4b633715ea7c3b3d42f8662d27598a\n"
    },
    {
      "commit": "ee7ff20e69498ebd53dd9717a0f984188341a75e",
      "tree": "2338621414d60b23ec50dd5f28fc413fb957a59e",
      "parents": [
        "f9325834de1ae004212aec2fd03445b4eebfa766"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 07 10:35:13 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 07 12:01:45 2010 -0700"
      },
      "message": "A new OggExtractor/VorbisDecoder combo to support approximate seeking.\n\nChange-Id: Id5d0c1c8b1adc62896bb5ed951f7b5cfda811e95\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "be83c9e8c71ce16c0d0e9ed9df525510a49a541b",
      "tree": "c750338bd885690d1d7dd67af96ea3f70ae21eaf",
      "parents": [
        "d8a30349da270715156d3f658b165481ce10cf71"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 20 11:50:11 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 06 14:55:33 2010 -0700"
      },
      "message": "Metadata construction optimization\n\n- Potentially much shorter stts box if samples have roughly the same duration\n- Potentially much shorter stsz box if all samples have the same size\n\nChange-Id: I4f7663dd64285070995585a02bb3ba1e1049a0cf\n"
    },
    {
      "commit": "c8e866331913821bef8e2f16101a29a8d8401081",
      "tree": "d39118ad2a4370e9e9a0c5cbc7b1e9de56592733",
      "parents": [
        "2a521ac3c4bbccf0490b83fb3aefa91ae78b832e",
        "d8a30349da270715156d3f658b165481ce10cf71"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 12:49:57 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 12:49:57 2010 -0700"
      },
      "message": "am 54928ce4: am 8a1c0934: am 71bd9fc8: am 100ef9be: Merge \"Disable vorbis seek when streaming from localhost.\" into froyo\n"
    },
    {
      "commit": "d8a30349da270715156d3f658b165481ce10cf71",
      "tree": "d39118ad2a4370e9e9a0c5cbc7b1e9de56592733",
      "parents": [
        "71ec1d320e61c490bd3fac172f1d1a206a7198e8",
        "f9325834de1ae004212aec2fd03445b4eebfa766"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 12:43:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 12:43:59 2010 -0700"
      },
      "message": "am 71bd9fc8: am 100ef9be: Merge \"Disable vorbis seek when streaming from localhost.\" into froyo\n\nMerge commit \u002771bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c\u0027 into kraken\n\n* commit \u002771bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c\u0027:\n  Disable vorbis seek when streaming from localhost.\n"
    },
    {
      "commit": "f9325834de1ae004212aec2fd03445b4eebfa766",
      "tree": "07090328e804d189f1df74e95c9c9b032182ba3e",
      "parents": [
        "77356c37030215a4b8696b7d0af44a724341a0f9",
        "acdd9d0f59c3d8bdc3de80664a609527ec3d21e2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 11:27:35 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 06 11:27:35 2010 -0700"
      },
      "message": "Merge \"Disable vorbis seek when streaming from localhost.\" into froyo"
    },
    {
      "commit": "acdd9d0f59c3d8bdc3de80664a609527ec3d21e2",
      "tree": "e75291b6c434b508d278b7f7ccb000863ca1f9df",
      "parents": [
        "3cf4e43cdd391502690c07e08e805aa8ff5db0c0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 10:18:05 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 10:31:57 2010 -0700"
      },
      "message": "Disable vorbis seek when streaming from localhost.\n\nChange-Id: Icda523ae1c89e26482f1c1767fe3a8b9222bb30f\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "2a521ac3c4bbccf0490b83fb3aefa91ae78b832e",
      "tree": "0b1c68253ed5b3a862f77333bc756235f3aa50a7",
      "parents": [
        "3fa060fb41a0ef8b1374ea2e92584d76906f3f5a",
        "71ec1d320e61c490bd3fac172f1d1a206a7198e8"
      ],
      "author": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 19:38:49 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 05 19:38:49 2010 -0700"
      },
      "message": "am 8391a3f4: am ebd2890b: am 2a1674b1: am 2d315667: For issue #2651381, allow library prelinking.\n"
    },
    {
      "commit": "71ec1d320e61c490bd3fac172f1d1a206a7198e8",
      "tree": "0b1c68253ed5b3a862f77333bc756235f3aa50a7",
      "parents": [
        "13aec890216948b0c364f8f92792129d0335f506",
        "77356c37030215a4b8696b7d0af44a724341a0f9"
      ],
      "author": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 17:52:22 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 05 17:52:22 2010 -0700"
      },
      "message": "am 2a1674b1: am 2d315667: For issue #2651381, allow library prelinking.\n\nMerge commit \u00272a1674b1d00fda68980ec834d6ce61aacd379bc8\u0027 into kraken\n\n* commit \u00272a1674b1d00fda68980ec834d6ce61aacd379bc8\u0027:\n  For issue #2651381, allow library prelinking.\n"
    },
    {
      "commit": "77356c37030215a4b8696b7d0af44a724341a0f9",
      "tree": "0773547a682447511484f5a86986efdf01701cf5",
      "parents": [
        "3cf4e43cdd391502690c07e08e805aa8ff5db0c0"
      ],
      "author": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 09:37:52 2010 -0700"
      },
      "committer": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 14:41:41 2010 -0700"
      },
      "message": "For issue #2651381, allow library prelinking.\n\nChange-Id: I119348b55ad0015a286e9c94709977cd1973a7e1\n"
    },
    {
      "commit": "3fa060fb41a0ef8b1374ea2e92584d76906f3f5a",
      "tree": "73b6a98aa3a58fc4091129448561403098acb218",
      "parents": [
        "1af3a78cc6bd1b1bfaeca779d1a6a7872120f5bc",
        "13aec890216948b0c364f8f92792129d0335f506"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 05 12:09:38 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 05 12:09:38 2010 -0700"
      },
      "message": "am 2518cd95: am 0835f067: Merge \"Support audio and video track interleaving in the recorded mp4 file\" into kraken\n"
    },
    {
      "commit": "13aec890216948b0c364f8f92792129d0335f506",
      "tree": "73b6a98aa3a58fc4091129448561403098acb218",
      "parents": [
        "aa9ca29395eebfcfa64e070dc71009b99131769f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 21 16:14:15 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 05 11:34:43 2010 -0700"
      },
      "message": "Support audio and video track interleaving in the recorded mp4 file\n\nChange-Id: Ifa27eb23ee265f84fe06773b29b0eb2b0b075b60\n"
    },
    {
      "commit": "1af3a78cc6bd1b1bfaeca779d1a6a7872120f5bc",
      "tree": "0fdacb56082af39b5b42a99e3e143ff702ceea66",
      "parents": [
        "e976f79f328163a009f9884e6b07d08c3b973137",
        "aa9ca29395eebfcfa64e070dc71009b99131769f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 05 11:07:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 05 11:07:10 2010 -0700"
      },
      "message": "am b8a8f850: am 8d30b2d2: Merge \"Support AAC recording\" into kraken\n"
    },
    {
      "commit": "e976f79f328163a009f9884e6b07d08c3b973137",
      "tree": "f89509fec9d700443a5dbaddfeb5c21334ae9e24",
      "parents": [
        "750bdfd40abae2e545eb103eb811b31422051057",
        "3830a4f133893e6a77a967c84220d7baf9687f23"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 05 11:07:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 05 11:07:04 2010 -0700"
      },
      "message": "am d818d52f: am ce0bd717: am 8ea45aad: am e083d0a2: Merge \"Support for Ogg Vorbis decoding in stagefright.\" into froyo\n"
    },
    {
      "commit": "aa9ca29395eebfcfa64e070dc71009b99131769f",
      "tree": "0fdacb56082af39b5b42a99e3e143ff702ceea66",
      "parents": [
        "3830a4f133893e6a77a967c84220d7baf9687f23",
        "050b28a593350047845a45a14cc5026221ac1620"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 04 14:40:28 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 04 14:40:28 2010 -0700"
      },
      "message": "Merge \"Support AAC recording\" into kraken"
    },
    {
      "commit": "3830a4f133893e6a77a967c84220d7baf9687f23",
      "tree": "f89509fec9d700443a5dbaddfeb5c21334ae9e24",
      "parents": [
        "86f69c1f41dcf4e0826b17ecf7fd71eb353b0782",
        "3cf4e43cdd391502690c07e08e805aa8ff5db0c0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 14:30:34 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 04 14:30:34 2010 -0700"
      },
      "message": "am 8ea45aad: am e083d0a2: Merge \"Support for Ogg Vorbis decoding in stagefright.\" into froyo\n\nMerge commit \u00278ea45aad100ee25067b2e83703454c71a968ba4f\u0027 into kraken\n\n* commit \u00278ea45aad100ee25067b2e83703454c71a968ba4f\u0027:\n  Support for Ogg Vorbis decoding in stagefright.\n"
    },
    {
      "commit": "3cf4e43cdd391502690c07e08e805aa8ff5db0c0",
      "tree": "3792432de7d3cf66218e1ed518bfbb32d7d9d4b7",
      "parents": [
        "0b5ba9eeed56a80fed3735f5cd4951477fda79f0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 11:46:42 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 11:58:16 2010 -0700"
      },
      "message": "Support for Ogg Vorbis decoding in stagefright.\n\nSet the magic property media.stagefright.enable-vorbis to true to use the new implementation instead of the standalon vorbis player for file-based playback. HTTP streaming of vorbis content will always go through stagefright.\n\nChange-Id: Ie3843a99fadb22372f89540d0f8d65196e0c2af8\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "050b28a593350047845a45a14cc5026221ac1620",
      "tree": "118de60bec960d36dd3784439f84e2bc1bba6d9f",
      "parents": [
        "86f69c1f41dcf4e0826b17ecf7fd71eb353b0782"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 22 17:27:04 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 03 15:47:41 2010 -0700"
      },
      "message": "Support AAC recording\n\n- Extend the audio recording to AAC format\n- Add support for setting some recording parameters\n- Add stss box to the meta data in the recorded file\n\nChange-Id: I41167bfd9d70ef9cd33906f8437b39c232b6d3b7\n"
    },
    {
      "commit": "750bdfd40abae2e545eb103eb811b31422051057",
      "tree": "33388f417f330d72ab7f781ac99e1ac253026d5f",
      "parents": [
        "737c54077a29d4e5dadbf986bc1ac45ed50abcb2",
        "86f69c1f41dcf4e0826b17ecf7fd71eb353b0782"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 30 15:08:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 30 15:08:10 2010 -0700"
      },
      "message": "am 1bb8b670: Merge \"Add support for enqueuing buffers in arbitrary order\" into kraken\n"
    },
    {
      "commit": "737c54077a29d4e5dadbf986bc1ac45ed50abcb2",
      "tree": "deebdeded18d54493ea41b5be6e09a0d272f39f2",
      "parents": [
        "845764b3429f9a5e47fe64c81b34be6acda4b5cc",
        "41623bfd339754718bab32a6259ff15920f1c588"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 29 14:34:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 29 14:34:26 2010 -0700"
      },
      "message": "am daedd81f: Merge \"cleanup. waitForCondition() now uses polymorphsim instead of templtes\" into kraken\n"
    },
    {
      "commit": "845764b3429f9a5e47fe64c81b34be6acda4b5cc",
      "tree": "41e0e1082e575b15d74339f3aacb20fa22807d29",
      "parents": [
        "7a061a43a1ec78be1d36d83aa6562023d984fb83",
        "43d8a28165c0cf5ecfd4ea988f5db0f120672e60"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 29 14:34:21 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 29 14:34:21 2010 -0700"
      },
      "message": "am 1d0fa397: Merge \"fix a race condition in undoDequeue(), where \\\u0027tail\\\u0027 could be computed incorrectly.\" into kraken\n"
    },
    {
      "commit": "86f69c1f41dcf4e0826b17ecf7fd71eb353b0782",
      "tree": "33388f417f330d72ab7f781ac99e1ac253026d5f",
      "parents": [
        "41623bfd339754718bab32a6259ff15920f1c588"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 27 21:08:20 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 28 16:12:54 2010 -0700"
      },
      "message": "Add support for enqueuing buffers in arbitrary order\n\nAlso added a very simple SharedBufferStack unit test.\n\nChange-Id: I253dbbe98a53c966b78d22d4d6dd59f8aefc8c40\n"
    },
    {
      "commit": "41623bfd339754718bab32a6259ff15920f1c588",
      "tree": "deebdeded18d54493ea41b5be6e09a0d272f39f2",
      "parents": [
        "43d8a28165c0cf5ecfd4ea988f5db0f120672e60"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 27 16:41:19 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 28 16:12:54 2010 -0700"
      },
      "message": "cleanup. waitForCondition() now uses polymorphsim instead of templtes\n\nthe reason for the above change is that waitForCondition() had become\nlarge over time, mainly to handle error cases, using inlines to\nevaluate the condition doesn\u0027t buys us much anymore while it increases\ncode size.\n\nChange-Id: I2595d850832628954b900ab8bb1796c863447bc7\n"
    },
    {
      "commit": "43d8a28165c0cf5ecfd4ea988f5db0f120672e60",
      "tree": "41e0e1082e575b15d74339f3aacb20fa22807d29",
      "parents": [
        "c32cd79d9ad4aba7d959b5b3be7361b4715e6f18"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 27 16:11:38 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 28 16:12:54 2010 -0700"
      },
      "message": "fix a race condition in undoDequeue(), where \u0027tail\u0027 could be computed incorrectly.\n\nin the undoDequeue() case, \u0027tail\u0027 was recalculated from \u0027available\u0027 and \u0027head\u0027\nhowever there was a race between this and retireAndLock(), which could cause\n\u0027tail\u0027 to be recalculated wrongly.\n\nthe interesting thing though is that retireAndLock() shouldn\u0027t have any impact\non the value of \u0027tail\u0027, which is client-side only attribute.\nwe fix the race by saving the value of \u0027tail\u0027 before dequeue() and restore it\nin the case of undoDequeue(), since we know it doesn\u0027t depend on retireAndLock().\n\nChange-Id: I4bcc4d16b6bc4dd93717ee739c603040b18295a0\n"
    },
    {
      "commit": "7a061a43a1ec78be1d36d83aa6562023d984fb83",
      "tree": "8a3b2842c196b748fd50d633b038ce33c9d6ee1a",
      "parents": [
        "23493afbbf680a1c328cec97d9d091978b2de690",
        "c32cd79d9ad4aba7d959b5b3be7361b4715e6f18"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 28 12:10:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 28 12:10:43 2010 -0700"
      },
      "message": "am b30bf6ef: Merge \"Use timestamp from camera driver for CameraSource\" into kraken\n"
    },
    {
      "commit": "c32cd79d9ad4aba7d959b5b3be7361b4715e6f18",
      "tree": "8a3b2842c196b748fd50d633b038ce33c9d6ee1a",
      "parents": [
        "261741e728f2137f12b28df25c25e96acd942de9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 17:48:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 28 11:55:47 2010 -0700"
      },
      "message": "Use timestamp from camera driver for CameraSource\n\nChange-Id: I09ddec69997c43b8f17fdd21304c76cb4c5ab8cf\n"
    },
    {
      "commit": "23493afbbf680a1c328cec97d9d091978b2de690",
      "tree": "41068d0acc37723315f09cf173b621c390d73259",
      "parents": [
        "68a3517fbecb82dac00bced37cb7226ff83cafb0",
        "261741e728f2137f12b28df25c25e96acd942de9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 11:20:22 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 26 11:20:22 2010 -0700"
      },
      "message": "am 40eb3f7b: am 31431b34: am 374aee68: Switch to use software MP3 decoder Hardware MP3 decoder could lead to hang in the Music application, although the chance is very low.\n"
    },
    {
      "commit": "261741e728f2137f12b28df25c25e96acd942de9",
      "tree": "41068d0acc37723315f09cf173b621c390d73259",
      "parents": [
        "add08eb454bbe8b3a0a40d23621c102b72cd005d",
        "0b5ba9eeed56a80fed3735f5cd4951477fda79f0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 11:12:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 26 11:12:37 2010 -0700"
      },
      "message": "am 31431b34: am 374aee68: Switch to use software MP3 decoder Hardware MP3 decoder could lead to hang in the Music application, although the chance is very low.\n\nMerge commit \u002731431b34f895862ae13efba30bb5771085572687\u0027 into kraken\n\n* commit \u002731431b34f895862ae13efba30bb5771085572687\u0027:\n  Switch to use software MP3 decoder\n"
    },
    {
      "commit": "0b5ba9eeed56a80fed3735f5cd4951477fda79f0",
      "tree": "eba0e273399f28784bc8e3be6dcb4161bb1893c6",
      "parents": [
        "4bf29cabaa7c94d0c74d5f945df6b51da51ed180"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 10:23:30 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 10:23:30 2010 -0700"
      },
      "message": "Switch to use software MP3 decoder\nHardware MP3 decoder could lead to hang in the Music application, although the chance is very low.\n\nbug - 2608400\n\nChange-Id: Ia0b5b6521015fc8d3e086117fa914dcc20ace5bd\n"
    },
    {
      "commit": "68a3517fbecb82dac00bced37cb7226ff83cafb0",
      "tree": "33c91150474ff16a6feda9d04e2bb56d938dbaeb",
      "parents": [
        "cb060573bb19d024f1dcf569b87756d78143456d",
        "add08eb454bbe8b3a0a40d23621c102b72cd005d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 16:43:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 20 16:43:26 2010 -0700"
      },
      "message": "am f5e20801: am 89e28cbe: am 9e609b0d: Merge \"Apparently select() does not immediately return if one of the masked socket descriptors is closed... Stop relying on select for read-with-timeout functionality and use SO_RCVTIMEO socket option instead.\" into froyo\n"
    },
    {
      "commit": "add08eb454bbe8b3a0a40d23621c102b72cd005d",
      "tree": "33c91150474ff16a6feda9d04e2bb56d938dbaeb",
      "parents": [
        "87d83db7909b9a920b4e417bb240ec11e5441749",
        "4bf29cabaa7c94d0c74d5f945df6b51da51ed180"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 16:37:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 20 16:37:35 2010 -0700"
      },
      "message": "am 89e28cbe: am 9e609b0d: Merge \"Apparently select() does not immediately return if one of the masked socket descriptors is closed... Stop relying on select for read-with-timeout functionality and use SO_RCVTIMEO socket option instead.\" into froyo\n\nMerge commit \u002789e28cbefaff6ae9499032bb446ae7e72e019466\u0027 into kraken\n\n* commit \u002789e28cbefaff6ae9499032bb446ae7e72e019466\u0027:\n  Apparently select() does not immediately return if one of the masked socket descriptors is closed... Stop relying on select for read-with-timeout functionality and use SO_RCVTIMEO socket option instead.\n"
    },
    {
      "commit": "cb060573bb19d024f1dcf569b87756d78143456d",
      "tree": "6eb97835ac66e120cb104ce2beb3aac475872df6",
      "parents": [
        "f46f3dd3effec9523e61de1dce33bf6207e4801a",
        "87d83db7909b9a920b4e417bb240ec11e5441749"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 20 16:37:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 20 16:37:29 2010 -0700"
      },
      "message": "am b834b38a: Merge \"added setCrop() to android_native_window_t\" into kraken\n"
    },
    {
      "commit": "f46f3dd3effec9523e61de1dce33bf6207e4801a",
      "tree": "e15b6f8c25fd4d5fa549380fe7981c27f15094e6",
      "parents": [
        "3d02ab8c49b4d77d4b7458fe2cf6c92c9fb9f7f8",
        "34cbbc9fb95b6c66840edce3291ce8275a290efb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "pixelflinger@google.com",
        "time": "Tue Apr 20 16:37:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 20 16:37:25 2010 -0700"
      },
      "message": "am 827cda45: Merge \"add support for up to 16 buffers per surface\" into kraken\n"
    },
    {
      "commit": "87d83db7909b9a920b4e417bb240ec11e5441749",
      "tree": "6eb97835ac66e120cb104ce2beb3aac475872df6",
      "parents": [
        "34cbbc9fb95b6c66840edce3291ce8275a290efb",
        "e9e4d5431d0df77a73f92b4a892417f47a57334c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 20 16:28:24 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 20 16:28:24 2010 -0700"
      },
      "message": "Merge \"added setCrop() to android_native_window_t\" into kraken"
    },
    {
      "commit": "34cbbc9fb95b6c66840edce3291ce8275a290efb",
      "tree": "e15b6f8c25fd4d5fa549380fe7981c27f15094e6",
      "parents": [
        "fdce1ccd7e468f3229de8f4f1616d017465470cb",
        "cdaaf320a1db27a7045fafa4d849c20daa97c146"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "pixelflinger@google.com",
        "time": "Tue Apr 20 16:28:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 20 16:28:14 2010 -0700"
      },
      "message": "Merge \"add support for up to 16 buffers per surface\" into kraken"
    },
    {
      "commit": "4bf29cabaa7c94d0c74d5f945df6b51da51ed180",
      "tree": "b364dfaabd616c0dc7730bf09c824d111aab071f",
      "parents": [
        "d2c6894b56a538aa807e20d3ef421807cd55c009"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 15:46:28 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 15:56:36 2010 -0700"
      },
      "message": "Apparently select() does not immediately return if one of the masked socket descriptors is closed... Stop relying on select for read-with-timeout functionality and use SO_RCVTIMEO socket option instead.\n\nChange-Id: Ic2d4a8f5b6bbf16772fba39377809ec68d249c1f\nrelated-to-bug: 2611257\n"
    }
  ],
  "next": "3d02ab8c49b4d77d4b7458fe2cf6c92c9fb9f7f8"
}
