)]}'
{
  "log": [
    {
      "commit": "9086ce254ac8769dbe90afd5146fce509a86418f",
      "tree": "839b677b53471d46e2d976aa21c64dd3083e4b3e",
      "parents": [
        "f0dee1c7bb5ed2b90b2207bde7552d0f9ce2c3b1",
        "abc40fd3f7effc025ccad91d05f5d6bb2a4c857c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Sun Oct 10 17:14:53 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 10 17:14:53 2010 -0700"
      },
      "message": "am 2b4f1f4c: am f72dd019: Merge \"Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\" into gingerbread\n\nMerge commit \u00272b4f1f4cb814f7a7df8d2cb9fcb5210bfe7999c7\u0027\n\n* commit \u00272b4f1f4cb814f7a7df8d2cb9fcb5210bfe7999c7\u0027:\n  Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\n"
    },
    {
      "commit": "2eeadf9ded4b5770a713496e9887d668889987bc",
      "tree": "94815ad41dce013a8d793d9e70d21f330573bd2b",
      "parents": [
        "0714c8262054cb6a532025feb082b21b502a128b",
        "74684081846ee6e68325fa5aba5c45b7447fd368"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Oct 10 16:06:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 10 16:06:04 2010 -0700"
      },
      "message": "am 4f21e517: am b37fcbfd: Merge \"Added getter for session Id to AudioSink\" into gingerbread\n\nMerge commit \u00274f21e517d09b9d793d20d64547df330fba705b3c\u0027\n\n* commit \u00274f21e517d09b9d793d20d64547df330fba705b3c\u0027:\n  Added getter for session Id to AudioSink\n"
    },
    {
      "commit": "54ff19ac69ace7c05ea90d225e26dab3b133f487",
      "tree": "abf0b910f9a40a2409d7e725c99c6144238d0625",
      "parents": [
        "fa6a5d481474ba11517c8d0eb6431595d387b81e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 08 11:59:32 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 08 18:32:43 2010 -0700"
      },
      "message": "Move Camera specific logic out from StagefrightRecorder to CameraSource\n\no updated comments and streamlined the logic in\n  checkVideoSize() and checkFrameRate() as suggested\n\nChange-Id: I49d04ac7998d4a215997aa63555dfb6e814e38d3\n"
    },
    {
      "commit": "6f3cba53efdd985ab13734c7ad90eb373ae9b9f7",
      "tree": "7cc426c49690a424cb2aa9dcbe9bfbe50e0c93a3",
      "parents": [
        "e6d26450e5a01be5b7f1343578e7237e68db7737",
        "70f521de2675ce6eedf4b22beed94ea1289b0f38"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 11:16:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 11:16:07 2010 -0700"
      },
      "message": "Merge \"Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\" into gingerbread"
    },
    {
      "commit": "70f521de2675ce6eedf4b22beed94ea1289b0f38",
      "tree": "fe477ecc5b9fbec01d41a458cc17bcf867f9809d",
      "parents": [
        "f4ea1f92bc56a8ffceddba0dbd3979fe0219b13c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:16:24 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:16:24 2010 -0700"
      },
      "message": "Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\n\nChange-Id: I016e79b688774f8ee91ac53216197b5fb9cb41b2\nrelated-to-bug: 3073955\n"
    },
    {
      "commit": "8c563ed9ca8a863a66965330b5d14bb4b4ab59d4",
      "tree": "b2d2e571aa8618456b27e1cb67a717ca80340e3e",
      "parents": [
        "2a4d22d79e927f2245537921e10fc5fda1c47a29"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 07 18:23:03 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 07 18:23:03 2010 -0700"
      },
      "message": "Added getter for session Id to AudioSink\n\nAdded a method to expose the audio session id at AudioSink interface\nso that the AudioPlayer in stagefright can retrieve it.\n\nAlso:\n- Fixed audio effect send level not being initialized in mediaplayer.\n- Fixed compilation error when LOGV is enabled in mediaplayer JNI\n\nChange-Id: I4bb55454fd63d646e0e677692d737c4843fb05fb\n"
    },
    {
      "commit": "5f4d93467a03b3a38320416f8cc2c2c2c94bf3fc",
      "tree": "096ebecff6d3483fe96bc504d584fb5837011c90",
      "parents": [
        "0d14c25355b7807b88fcdc76040ef986aa754815"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Oct 03 22:08:23 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 04 13:14:22 2010 -0700"
      },
      "message": "Use setVideoSize API in StagefrightRecorder\n\nChange-Id: Ia7ddf5e8d2b931453d2cb801169906191349ca07\n"
    },
    {
      "commit": "51be6db7d0e802b3f5d067e39e543ae4f09ed01c",
      "tree": "987f654eda08d2e4be1832f4fae744aa4ce390d1",
      "parents": [
        "3a2f37f40cfceb181ee61ae53a7d6954ce9717cd",
        "2658b3f8736a378ad5956aefed069387808d8cd3"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Tue Sep 28 13:19:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 13:19:55 2010 -0700"
      },
      "message": "am 7dff9dfd: am 269dea1c: Merge \"Fix media.player dumpsys to output open/mapped files correctly. Bug 2866669. The dump function whitelists several directories as filters to the output. The mount point changed for SD card in Froyo, and we started filtering files that w\n\nMerge commit \u00277dff9dfd6176fad1318a27f16318561453a429f0\u0027\n\n* commit \u00277dff9dfd6176fad1318a27f16318561453a429f0\u0027:\n  Fix media.player dumpsys to output open/mapped files correctly. Bug 2866669.\n"
    },
    {
      "commit": "02fa834249a01144d6f23137951538600aa5d611",
      "tree": "8cfc2546431c46811d988c8976679fbc75143e0e",
      "parents": [
        "4a73f3da3501db6e95473a4a653d6319c6d618e2"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Sep 27 16:55:18 2010 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Sep 27 17:04:05 2010 -0700"
      },
      "message": "Fix media.player dumpsys to output open/mapped files correctly. Bug 2866669.\nThe dump function whitelists several directories as filters to the output.\nThe mount point changed for SD card in Froyo, and we started filtering files\nthat were open on the SD card. This fix changes the filter for the SD card,\nand adds the directory for data files as well.\n\nChange-Id: I61b67c3d11d93dbd530e8b3566000e79bc037137\n"
    },
    {
      "commit": "78eff720c86eb6d4e3d45a144df60b2ca464d2d4",
      "tree": "74d93ba7c4ae2d3904d40ef69f614d257c596547",
      "parents": [
        "302a965f4bf5d179ccc68b7d853e2806941de020"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Sep 15 15:08:49 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 17 09:50:27 2010 -0700"
      },
      "message": "Implemented frequent read returns for quick stop in time lapse.\n\nIf the frame capture interval is large, read will block for a long time.\nDue to the way the mediaRecorder framework works, a stop() call from\nmediaRecorder waits until the read returns, causing a long wait for\nstop() to return. To avoid this, we return a copy of the last read\nframe with the same time stamp if a frame is not available quickly.\nThis keeps the read() call from blocking too long. This method is\ntriggered when startQuickReadReturns() is called on\nCameraSourceTimeLapse.\n\nIn the still camera case, also using waitRelative on Condition\ninstaed of sleeping, so that we can wake it up.\nAlso for the idle check instead of sleeping, we now wait on a\ncondition variable, which is woken up when the last takePicture\ncallback gets called.\n\nChange-Id: Ia74386e175536aee0f44ae2f8b114c353d3d72f5\n"
    },
    {
      "commit": "59d9e31c503e5c2f49448362a0d3a8f1150fb6c2",
      "tree": "89dad46179877bd15bd92127a36717c45d07cbcb",
      "parents": [
        "7bb20172891fdd27cc13208ac9e36b80309ab0e5"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Sep 13 18:52:55 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Sep 14 18:23:57 2010 -0700"
      },
      "message": "Checks for auxiliary video recording.\n\n- Check that time lapse mode is on when using auxiliary video recording.\n- Check that auxiliary video size is strictly less than the main video\n  size.\n\nChange-Id: Ic49d25e6ac30f6f885ce4f5fb38dbe0cc7bc1be1\n"
    },
    {
      "commit": "155e833a7a5fc3e193691324cf9326da1bc3289a",
      "tree": "bf8997c55b22617004836014389664dcb56ebf05",
      "parents": [
        "cfe88a20345dad981842b2c8092e4c704d3f98b4"
      ],
      "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": "cfe88a20345dad981842b2c8092e4c704d3f98b4",
      "tree": "bb47e897bce701371e03b750838b852f9971f6d3",
      "parents": [
        "ad452ffadf0ced7449395585a55255c915734e17"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 15:35:44 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Sep 01 13:46:46 2010 -0700"
      },
      "message": "Support for auxiliary video parameters.\n\nAdded support for passing width, height and video bitrate\nfor the auxiliary video.\nAlso setting encoder level depending on the video size and bitrate.\n\nChange-Id: I4a90046853f67287c3e7e6babc75b4827f0c3e73\n"
    },
    {
      "commit": "5d6aca5d86e86af3f8f597be573d4563d69ceb85",
      "tree": "88eb64d7aa763ab24c7eda54b0817740781d4bea",
      "parents": [
        "9c075bca0b75093ca0514a3c8f74d73c8e9e83fd"
      ],
      "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": "9c075bca0b75093ca0514a3c8f74d73c8e9e83fd",
      "tree": "5669e5acd20c684e4ec8f28e68f883066c640600",
      "parents": [
        "6865ddb29fc7e7a14104d73c65b71074502bb6c7"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 26 17:05:18 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 10:38:49 2010 -0700"
      },
      "message": "Adding support for parallel recording sessions.\n\n- Added setOutputFileAuxiliary to pass the auxiliary file descriptor. The java\ninterface through JNI will be checked in next.\n\n- renamed setupCameraSource to setupCamera as the function just sets the camera.\n- Added setupCameraSource which sets up the camera source. This functionality\n  was in setupVideoEncoder before.\n- setupVideoEncoder now takes in a cameraSource instead of creating it on it\n  own.\n\n- Refactored startMPEG4Recording() to use setupMPEG4Recording,\n  setupMPEG4MetaData.\n    - setupMPEG4Recording() takes in file descriptor, bitrates to setup a mpeg4\n      writer. This function can be called multiple times to setup multiple\n      writers.\n    - Added setupMPEG4MetaData() for setting up the meta data for mpeg4 writer.\n  startMPEG4Recording() now calls setupMPEG4Recording, setupMPEG4MetaData for\n  each recording session.\n\nChange-Id: I07f5334a1ff8e12a36f58e94129fcfa6add2208b\n"
    },
    {
      "commit": "dd0f7a7127fdb04863b4ad66d2b846ee94358314",
      "tree": "e012a5e389d776605dad8edf62b50a4ba6dc2b4d",
      "parents": [
        "d3a3eaf5d0c88e13b8dc7154fcae8b15dcacc932",
        "e83fffc032654b819774e5d94d38842bb4190c22"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 13:30:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 13:30:35 2010 -0700"
      },
      "message": "am 9aa05ec2: am 681c5ff2: Merge \"Reverse the default setting of media.stagefright.enable-{rtsp,record} in preparation for building without opencore.\" into gingerbread\n\nMerge commit \u00279aa05ec2cd6bc592074c7bd08d22db46649c7f12\u0027\n\n* commit \u00279aa05ec2cd6bc592074c7bd08d22db46649c7f12\u0027:\n  Reverse the default setting of media.stagefright.enable-{rtsp,record} in preparation for building without opencore.\n"
    },
    {
      "commit": "a1ffe49c7d537bf2a16fc3eb32b0ecc6d72bdf8a",
      "tree": "8ea3ebaca6f9020bb8381260e61e6b7633ebb3ca",
      "parents": [
        "e56121bc4cb29c91d736eab181b1f51c4f125e78"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 12:46:12 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 12:46:12 2010 -0700"
      },
      "message": "Reverse the default setting of media.stagefright.enable-{rtsp,record} in preparation for building without opencore.\n\nChange-Id: I1ca6bd8faba0185f9694f9dc04d2b3e6a7ab5ac3\nrelated-to-bug: 2370115\n"
    },
    {
      "commit": "a8c88e810ea1b8e90fd6c250d4c0a87eb628d4d8",
      "tree": "a3320ff8cc939c23b6753178b3cbc81c6c8600a7",
      "parents": [
        "ef6c8c0324be75dfac3d6a4025ec3b3a7ca23826",
        "2dbffa8c6545255553239a5d65a3b21564078c4a"
      ],
      "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": "515c0a56b6fbcca18a08f0daac7be278dede46d0",
      "tree": "1f252b087c43ea53772e4189c9c9fea435b84977",
      "parents": [
        "ee7a5d9f5506b494ad45946690d1edc8afe8b4c4",
        "36d8ab8fdf183a2a025e93ba78aaed92c55d6586"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 24 09:03:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 09:03:55 2010 -0700"
      },
      "message": "am 701b710c: am 300b0b7e: Merge \"setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration.\" into gingerbread\n\nMerge commit \u0027701b710c194181765616520f6d89d450b4b6c1f5\u0027\n\n* commit \u0027701b710c194181765616520f6d89d450b4b6c1f5\u0027:\n  setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration.\n"
    },
    {
      "commit": "4b79168835965cf0fc41ebe2a367e22b4cb20d08",
      "tree": "d70a673d243fdc72171ecbcf51094554f947987a",
      "parents": [
        "82252a9a732c7325166c36589c1dfa9f2cb8ac04"
      ],
      "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": "f143cc1866737c2ac24f4b2d7e4b2e776be10d56",
      "tree": "fc2be7d35ea17dd324aa8b90a380ae897b16578c",
      "parents": [
        "011df6ab59853b5e2f5654031d842fb1231198c0",
        "5daeb129a2c2ba3d14ccd94af283b5f561c783ea"
      ],
      "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": "5daeb129a2c2ba3d14ccd94af283b5f561c783ea",
      "tree": "c3e0f59fefcdb20b92e9a2fc5da59a7cf4b1464f",
      "parents": [
        "a0ced19fa96f26a25de708588a34ebfd452f250e"
      ],
      "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": "dedf414d3fe2e79ee0aad0f1c82ca16ebd886ff6",
      "tree": "c9b53443c9b06bc42ad07d57c701bbf10137bcb7",
      "parents": [
        "482482401095d5fc98f89b4a3ce43d41c00fffd7"
      ],
      "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": "263ebfd8a17266eedc84eb879edb6a6a3395f760",
      "tree": "581c9e9b89f9b76e86d6186310d66c3aa588e654",
      "parents": [
        "9934d0cf66861d331adcad28dc4713874e607a76",
        "aa14af4897f556276b0835407ab867c8898ed2f5"
      ],
      "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": "be6fd201b9a04fe0f8fd409f10595ddb41832591",
      "tree": "d2f5b13ca7fde33c24c488d195fa2483c4d5a271",
      "parents": [
        "3eb2ff224a12b5670f4f62f07a47ffb2fde01548"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Aug 18 15:19:19 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 14:06:48 2010 -0700"
      },
      "message": "setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration.\n\naccording to MediaRecorder::setMaxDuration documentation we should disable duration limit\nwhen zero or negative time is passed. Currently setParamMaxFileDurationUs was treating\nzero/negative as an error case. Fixed that.\n\nChange-Id: I468c3bcc74cb5a34ee3e172cef5147550d6be096\n"
    },
    {
      "commit": "37187916a486504acaf83bea30147eb5fbf46ae5",
      "tree": "b011eba352b6e60ae459f88ef590b45b2e351110",
      "parents": [
        "34c9ad88d3d827cca0c7b5f2fb1b0d4a1a20a2d1"
      ],
      "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": "8206beb4953e42a727417286cdf9d52c35c2889d",
      "tree": "fcef34ddd74f27e692f3c2e2ea17802d5cdd3d11",
      "parents": [
        "790f640ac3b573efd574d346d1bb338d9724ed48",
        "e246a940426d418b99cf62c547c7a2093811f2fb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 15:19:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 16 15:19:29 2010 -0700"
      },
      "message": "am f54da15b: am eff30e3d: Change the default time scale for audio/video track during recording and reduce rounding errors in calculating the sample duration\n\nMerge commit \u0027f54da15b7c3fa55268451c485544e831832fdf15\u0027\n\n* commit \u0027f54da15b7c3fa55268451c485544e831832fdf15\u0027:\n  Change the default time scale for audio/video track during recording\n"
    },
    {
      "commit": "c059860c73678a202bfa33062723e8f82fb779d9",
      "tree": "94b5887059eabda7d8fabe686eba50f5c7963f94",
      "parents": [
        "e259531ce59ab1f31de5a23124b22536f6a5a767"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 13 14:16:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 10:38:35 2010 -0700"
      },
      "message": "Change the default time scale for audio/video track during recording\nand reduce rounding errors in calculating the sample duration\n\n- Default time scale for tracks other than audio is set to 90000.\n- Audio track by default uses the audio sampling rate as the time scale.\n- Default movie time scale remains to be 1000.\n- The default time scale values will be overwritten by a user-supplied value if exits.\n\nChange-Id: I81b40ed0626ea45e9fd24a89e21a2c5a4a2c3415\n"
    },
    {
      "commit": "2dac90da3ea5120b52844a6ee38c300301de5756",
      "tree": "e1f63e3ee3b057b935a9be9ebb4aaf985688821a",
      "parents": [
        "047be32ec88dd04a9aca23fa59773fe2eaccb8f8",
        "debd76c4a934c98a88850f0a50a30d3f01394eb7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 12 09:32:18 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 12 09:32:18 2010 -0700"
      },
      "message": "am 0386d04b: am 581581fe: Merge \"Fix all fd leaks in authoring engine\" into gingerbread\n\nMerge commit \u00270386d04b19619b03b6bce830010e11d31d3f8a5c\u0027\n\n* commit \u00270386d04b19619b03b6bce830010e11d31d3f8a5c\u0027:\n  Fix all fd leaks in authoring engine\n"
    },
    {
      "commit": "25d83125cee222993673d3ba261ae1186bcad8c2",
      "tree": "ff9cb1abe9343695635b261a2c24906baba9794f",
      "parents": [
        "eaf0e0786c4c21d6c63d8f1f4515cb2a5311493b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 11 17:12:39 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 11 17:18:30 2010 -0700"
      },
      "message": "Fix all fd leaks in authoring engine\n\nChange-Id: I17798543f9dd41cc8bef6f6086e66932f9f97be8\n"
    },
    {
      "commit": "ca2fa61ef03cac008ea86e6fe16b2e5f9f1a2be3",
      "tree": "0f4554efaf3361307beae498463a8668739b0b2d",
      "parents": [
        "250a4cf8127a9ba572bae90de1e44437e0b78a94"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Aug 04 14:26:45 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 05 21:30:08 2010 -0700"
      },
      "message": "When using still camera for time lapse capture, don\u0027t set preview.\n\nSince HD resolution may not be supported by the video camera,\ndon\u0027t set preivew using the HD size. The app should have set the\npreview already, just use that.\n\nChange-Id: I2f8e89bf2c7440f7bc8db7e4a228f4c8250d92b4\n"
    },
    {
      "commit": "982a93173bc84f005172152d823cbb59dfcbeb12",
      "tree": "2ef94049c4daadc6b4da5a3d6c93c04d99d08d05",
      "parents": [
        "aa68b49a53a874a1813e65752663f19d18149e2c",
        "347d3c1dabd7ae9c998a024c685de2001e0ff369"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 05 11:46:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 05 11:46:04 2010 -0700"
      },
      "message": "am 1f513d88: am c17f35dd: Merge \"Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\" into gingerbread\n\nMerge commit \u00271f513d8821670a33d6361ea521b6756163a3f9bf\u0027\n\n* commit \u00271f513d8821670a33d6361ea521b6756163a3f9bf\u0027:\n  Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\n"
    },
    {
      "commit": "39ddf8e0f18766f7ba1e3246b774aa6ebd93eea8",
      "tree": "87f5d0d68c1779f113843e939c41440ff6b00389",
      "parents": [
        "610959a52fe22a88e50d158f5f5f492fee4f1921"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 04 10:14:30 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 04 11:49:24 2010 -0700"
      },
      "message": "Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\n\nChange-Id: I95b8dd487061add9bade15749e563b01cd99d9a6\n"
    },
    {
      "commit": "e41f9ba4869a96f004c731d8d17939ae607143b9",
      "tree": "014a73260d60c41d6a07e3128663d95fda5435af",
      "parents": [
        "216e5df78e958a3349ba4785fb79c688e1ad39a5",
        "c0330ab7213be992099c83aa27c603707363a58d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 04 11:12:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 04 11:12:40 2010 -0700"
      },
      "message": "am d152c1c7: am d194f3d6: Merge \"Replace CHECK with a failure return value when mCamera-\u003esetParameters() fails if the camera is locked by someone else.\" into gingerbread\n\nMerge commit \u0027d152c1c7534a80b84f6b389efa8a410ea359b3eb\u0027\n\n* commit \u0027d152c1c7534a80b84f6b389efa8a410ea359b3eb\u0027:\n  Replace CHECK with a failure return value when mCamera-\u003esetParameters() fails\n"
    },
    {
      "commit": "48f6ce0e17297c575dcbb25671a7bee80ba13061",
      "tree": "b504aa0ba02ef80fd83ba7dba5e27eea72a10aeb",
      "parents": [
        "26ab7ab7f543a03b65735a41de8496c54d3e490e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 03 15:29:20 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 03 15:29:20 2010 -0700"
      },
      "message": "Replace CHECK with a failure return value when mCamera-\u003esetParameters() fails\nif the camera is locked by someone else.\n\nbug - 2827892\n\nChange-Id: I217d4a00f04ebd57b557d3faef28787c14f23ea0\n"
    },
    {
      "commit": "f95ce6452d87316b8f5df6692537bd039377f349",
      "tree": "fc1d592d782178318a034d565ef087e74e159614",
      "parents": [
        "fd150a8e03cdd8462eafd68f4a4231aa52f0e5a1"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Aug 02 14:42:46 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Aug 02 14:42:46 2010 -0700"
      },
      "message": "Allowing useStillCameraForTimeLapse to be set through MediaRecorder.java\n\nThis will allow apps to make the decision of whether to use still image mode or\nvideo mode for time lapse capture.\n\n- setTimeLapseParameters now takes in a useStillCameraForTimeLapse parameter.\n- Added support in StagefrightRecorder for passing through this parameter.\n\nChange-Id: Iafbcb76f9a7903118ea5eb822c81008619630f03\n"
    },
    {
      "commit": "30e3eb619f02cf36e6d1d31be528d6be552bb3e2",
      "tree": "dea281b68cbb9b22f33b764fe7f46650b27223d9",
      "parents": [
        "3768ac8b7a7713c2dd1b7cdc70ddf760003d5e53",
        "6e5ea76da60c253dee7f07ecf3503ad43a0aff92"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 14:33:05 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 30 14:33:05 2010 -0700"
      },
      "message": "am e915b0ef: am d973a533: Merge \"Lower the lower bound for max file duration check\" into gingerbread\n\nMerge commit \u0027e915b0ef5d574022dfeffc9b2b61e21c1433c89c\u0027\n\n* commit \u0027e915b0ef5d574022dfeffc9b2b61e21c1433c89c\u0027:\n  Lower the lower bound for max file duration check\n"
    },
    {
      "commit": "489d78dcde35ef7ecaed5fac5b777fabfcd0525b",
      "tree": "a0a617a80f6eb19cb4f406dbdf3b26b5803f4b8a",
      "parents": [
        "9da2070b6d6d20550de7da61478c325f0928d020",
        "e4fc55de48241c5fb4c4b9d652fd2d4cd0b71138"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 14:28:26 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 30 14:28:26 2010 -0700"
      },
      "message": "Merge \"Lower the lower bound for max file duration check\" into gingerbread"
    },
    {
      "commit": "e4fc55de48241c5fb4c4b9d652fd2d4cd0b71138",
      "tree": "25ec9aaddfc632f3ccb86b889a1a647da4c6d1d1",
      "parents": [
        "5caff27f4683d5e444f327a5beec15d9b8c7f252"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 12:41:59 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 12:41:59 2010 -0700"
      },
      "message": "Lower the lower bound for max file duration check\n\n- This fixed a CTS test where 200 ms is being used\n\nChange-Id: Ib598b7b94be54e98a96703c58c5f244bc379cf7d\n"
    },
    {
      "commit": "9da2070b6d6d20550de7da61478c325f0928d020",
      "tree": "f1548891fab33ca03923f70cf25a2ffeab50be82",
      "parents": [
        "3be9523784cc4038f601e510faee595117cdacb3",
        "efe6039f71e9bac2138003b3287e94a7ab7e5c55"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 30 12:08:31 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 30 12:08:31 2010 -0700"
      },
      "message": "resolved conflicts for merge of 27eecb70 to gingerbread\n\nChange-Id: If064f2f4950fc1a4ff38e6927fe2120af76b26f1\n"
    },
    {
      "commit": "bc286dce1af6670824fba4167e0750b631168d72",
      "tree": "f6d30ddc5cee2a6562bb510d7bacf20806b9f9bb",
      "parents": [
        "c4e47d1e81c4e4403663cb911e98dbf3ada9942c",
        "0319aaecb03aa83924ab4e3d9c9bc657c2e8bc06"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:54:42 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 29 17:54:42 2010 -0700"
      },
      "message": "am 0c51c98f: am 4506c62a: fix inaccurate copyrights\n\nMerge commit \u00270c51c98fd9edf0bdc8f2c567470fc332b5ae3adf\u0027\n\n* commit \u00270c51c98fd9edf0bdc8f2c567470fc332b5ae3adf\u0027:\n  fix inaccurate copyrights\n"
    },
    {
      "commit": "0319aaecb03aa83924ab4e3d9c9bc657c2e8bc06",
      "tree": "7c3ae3eecc16c50c794aff141a89b14942117364",
      "parents": [
        "0895d83cb62d269468e64a00e9e89fa7697f2f84",
        "01cff464978aa0f749f42650180b45ea56cb17de"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:52:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 29 17:52:09 2010 -0700"
      },
      "message": "am 4506c62a: fix inaccurate copyrights\n\nMerge commit \u00274506c62abd5767d6d42a97e8e87793a1b3bcb625\u0027 into gingerbread-plus-aosp\n\n* commit \u00274506c62abd5767d6d42a97e8e87793a1b3bcb625\u0027:\n  fix inaccurate copyrights\n"
    },
    {
      "commit": "68335fdd6e9c1d622384612605d6952503cb7fd0",
      "tree": "94e9982f93be7339bde4d8b9336f9968f5509efd",
      "parents": [
        "e32283b15bbd60179424bdc740a4e4932da4c61e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:41:35 2010 -0700"
      },
      "message": "fix inaccurate copyrights\n\nChange-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd\n"
    },
    {
      "commit": "01cff464978aa0f749f42650180b45ea56cb17de",
      "tree": "a31c8e61281d0bbcbec93d0ab05368f73ab85994",
      "parents": [
        "ccaa41429d2afc47f0fb828a0146a1b1936188fe"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "message": "fix inaccurate copyrights\n\nChange-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd\n"
    },
    {
      "commit": "3722abe1a6ae53034b9dee6b12e8513804622fd5",
      "tree": "976d1a36aa3b20c864dab16448a82c70a2ca33ee",
      "parents": [
        "ed0de3c123aaa86147993721d4794648a65aab75",
        "e8b0071c1656e64bd941debd5dad2ac8b63bbafc"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 28 12:02:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 28 12:02:59 2010 -0700"
      },
      "message": "am cb51115c: am 5587bb7e: Merge \"Interleave the audio and video by default - default interleave duration is set to 1 second\" into gingerbread\n\nMerge commit \u0027cb51115cca81ba47d00aa344f6ed16d1056b056b\u0027\n\n* commit \u0027cb51115cca81ba47d00aa344f6ed16d1056b056b\u0027:\n  Interleave the audio and video by default\n"
    },
    {
      "commit": "f01528f435e6b1f02d118fcd8305a148c27a89f1",
      "tree": "82d72c57f4f99358d361242029396ef133bd2062",
      "parents": [
        "542db5d438988360d491a5add1040a2df9aa90c9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 28 10:08:03 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 28 10:08:03 2010 -0700"
      },
      "message": "Interleave the audio and video by default\n- default interleave duration is set to 1 second\n\nThis can dramatically reduce the memory usage\nby the MP4 file writer.\n\nChange-Id: Ia3ff202cabfcd2d3f183065d31e4596617c2dded\n"
    },
    {
      "commit": "e4e0a6994d39c4a7cba09c5fff442b2dca1df8f8",
      "tree": "545e3cbc6bbd5c6b78a5adb2d00eeb5b16abb6a4",
      "parents": [
        "55cb2b8319e6b36e88658de121c534e95cd240b4"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 21:33:31 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 22 17:02:12 2010 -0700"
      },
      "message": "Allowing setting of time lapse parameters through MediaRecorder.java\n\nadded setTimeLapseParameters() to MediaRecorder.java and SetParameter support\nin StagefrightRecorder to allow enabling time lapse and setting the corresponding\nparameters.\n\nChange-Id: I509040aa71f8d3fc37337b0894a81d9c0fd7a40a\n"
    },
    {
      "commit": "71ff94cb52874e42dede3c6bc4b86757b72cf0b1",
      "tree": "dc47a5d309669d92854762df8fdc948668228ebf",
      "parents": [
        "932e0a11d74d5e236ccef9ee314442385c3d4e9d",
        "552f4053c194770a5c9b37825f222031548dc5a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 21 09:52:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 21 09:52:17 2010 -0700"
      },
      "message": "am 34161132: am 7070b365: Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n\nMerge commit \u002734161132030254bac7dd64c9713832e2f961a061\u0027\n\n* commit \u002734161132030254bac7dd64c9713832e2f961a061\u0027:\n  Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n"
    },
    {
      "commit": "2beeb50b1bba9e92f6cacfeca37fe9fa9d36ead1",
      "tree": "ce966d62f6fbb94178763ec53760f6961ffffd58",
      "parents": [
        "3108231d90e8aa324923fd8864ca2477948c5d25"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 16 07:43:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 21 06:28:01 2010 -0700"
      },
      "message": "Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n\nAdded methods to AudioTrack and MediaPlayer java classes to enable use of\nauxiliary audio effects. The effect can be attached and detached by specifying its\nID and the send level controlled.\n\nChange-Id: Ie74ff54a453096a742688476f612ce355543b6f3\n"
    },
    {
      "commit": "932e0a11d74d5e236ccef9ee314442385c3d4e9d",
      "tree": "5e9ed9f7bb7138c3ac78c52bc3c07336e5427412",
      "parents": [
        "d403f73c6db493a067d529e932d699ce461ae1d8",
        "65e334b9448689e12400bae6a739f0513f72d428"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 20 16:55:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 20 16:55:12 2010 -0700"
      },
      "message": "am 9049fe60: am d7514ec6: Merge \"Progress status notification\" into gingerbread\n\nMerge commit \u00279049fe60c20640bd606741c8f45f3f781a1684f5\u0027\n\n* commit \u00279049fe60c20640bd606741c8f45f3f781a1684f5\u0027:\n  Progress status notification\n"
    },
    {
      "commit": "7a42770f47225483a885b168d05e81b6a81189c0",
      "tree": "f1d340445f03640a15a61f259d6c63d06e0cd61b",
      "parents": [
        "385695764189477e963a749a5f107f6eaeb9c5f2"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 11:37:17 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 11:37:17 2010 -0700"
      },
      "message": "Use software encoder for time lapse capture.\n\nChange-Id: I7f60eb1af95590c84b0cd98134f5a5a8963338dd\n"
    },
    {
      "commit": "faed5cd124a54b8db3429f4c26b3220bbec4c8bb",
      "tree": "f0d4576711cdcc0af89e9f509d5a94eae995bdeb",
      "parents": [
        "59f566c4ec3dfc097ad8163523e522280b27e5c3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 15 19:08:20 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 20 08:39:57 2010 -0700"
      },
      "message": "Progress status notification\n\n- Keep track of per-track progress\n\nChange-Id: Ibd36f0e8c78581928c8aa2f5e23c5e7e0615c2cc\n"
    },
    {
      "commit": "65e7e6facda89927cb26594b3b65ae81b3235ebc",
      "tree": "89129cc7a87973b4218e3c899ec439a8ac48938b",
      "parents": [
        "6113efbd1e5f7495b80bf64f7ee90a571e3cf6a6"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Jul 12 09:17:14 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Jul 19 18:22:56 2010 -0700"
      },
      "message": "Adding support for timelapse capture using still camera\u0027s takepicture.\nAlso moving entire implementation into a new class CameraSourceTimeLapse\nwhich inherits from CameraSource.\n\nFor timelapse capture using still camera, we start a thread which runs a\nloop in which it calls Camera::takePicture() and then sleeps until the next\nframe should be captured.\nThe function dataCallback() handles the callback from the camera with the\nraw image data. This function copies the data and creates an artificial\ntimestamp corresponding to one frame time ahead of the last encoded frame\u0027s\ntime stamp. It then calls dataCallbackTimestamp() of the base class which\nwill think that it recieved the frame from a video camera and proceed as usual.\n\nFor moving the implementation to the subclass CameraSourceTimeLapse, added a\nfew virtual functions to CameraSource, which do the current thing for the base\nclass, but specialized things for CameraSourceTimeLapse.\nE.g. startCameraRecording() in the base class just calls mCamera-\u003estartRecording(),\nwhile in CameraSourceTimeLapse it may start a thread for the still camera case.\n\nChange-Id: Ib787f24bd2e1f41681513f0257e1c4ca10a2b4de\n"
    },
    {
      "commit": "cbcc684555a8774b21ba04c09b2f5cee8c88453a",
      "tree": "e6ba409fcc9e9076650877112ae2806470267823",
      "parents": [
        "8065e2056073808716db32136d7acfd50eeab924",
        "b2975065465192dd46bc3eadabc00b9d855eb4e6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 15 11:54:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 15 11:54:10 2010 -0700"
      },
      "message": "am b068b47c: am d6a85a21: Merge \"Support user-supplied timescales for authoring\" into gingerbread\n\nMerge commit \u0027b068b47c6d0214256116a0c661740bddf7acc18c\u0027\n\n* commit \u0027b068b47c6d0214256116a0c661740bddf7acc18c\u0027:\n  Support user-supplied timescales for authoring\n"
    },
    {
      "commit": "8f5f2fcee5c12d08df71d17017410c50951fc2e3",
      "tree": "4cfeb1085495bacbc93775b43e0022fed69ca993",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 02 11:39:06 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 14 17:29:17 2010 -0700"
      },
      "message": "Support user-supplied timescales for authoring\n\n- also, change all the real time unit to microseconds in MPEG4Writer\n\nChange-Id: I260f512f2eb670ade7b8858a56335a5d639de756\n"
    },
    {
      "commit": "f6266bb1912255e92e590fcb6aedb719898545da",
      "tree": "1729da3d544c2429961cd734c5cfba5f750ca33f",
      "parents": [
        "4714b0766ecf48f09f39b4781a5c4deafc092d49",
        "4999e983c8f2f0060c14f2d7c5488e7f553985b4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 13 11:04:27 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 13 11:04:27 2010 -0700"
      },
      "message": "am f6bdc764: am 9d8bea11: Merge \"Initial checkin for software AVC encoder\" into gingerbread\n\nMerge commit \u0027f6bdc764b7a21f8037504e1dc4f81227ea2bedea\u0027\n\n* commit \u0027f6bdc764b7a21f8037504e1dc4f81227ea2bedea\u0027:\n  Initial checkin for software AVC encoder\n"
    },
    {
      "commit": "29a84457aed4c45bc900998b5e11c03023264208",
      "tree": "de114a11a9ec702c45a4a1683fa8c0024f49df8d",
      "parents": [
        "a480a6f7f204fa1712e1484a6ba9e6c8772fa110"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 02 17:44:44 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 13 10:58:20 2010 -0700"
      },
      "message": "Initial checkin for software AVC encoder\n\n- Since the software encoder assumes the input is YUV420 planar,\n  color conversion needs to be added when the input color format\n  does not meet the requirement. With this patch, I only added\n  a single color conversion from YUV420 semi planar to YUV420\n  planar. We can add more as we go.\n\nChange-Id: If8640c9e5a4f73d385ae9bb2022e57f7f62b91b9\n"
    },
    {
      "commit": "004a77836d1963847acd20ea684e2ffe48aa3f19",
      "tree": "e5f597eb2dcf444278314f556005186171ebcb46",
      "parents": [
        "7f53a190463274096155704276f3002c1620a364",
        "40ad2941b4dcc7410bbcc7a2a138983933915f98"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 09 09:20:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 09 09:20:03 2010 -0700"
      },
      "message": "am 4f440632: am 929642ee: Add runtime dumpsys support for media recorder client\n\nMerge commit \u00274f4406322dafd6e128b437edbc541327f0b38d04\u0027\n\n* commit \u00274f4406322dafd6e128b437edbc541327f0b38d04\u0027:\n  Add runtime dumpsys support for media recorder client\n"
    },
    {
      "commit": "b914122eb9cb54bbeae4ec03bfebb194aecdccbd",
      "tree": "92968131eb8b5cd486338c484f743d67d48ba2c5",
      "parents": [
        "cb28102ad3976339ec445afbcb4130f2991b38d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 08 11:16:11 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 08 21:25:55 2010 -0700"
      },
      "message": "Add runtime dumpsys support for media recorder client\n\nChange-Id: I4c8a81720f3be2db54678a7e84fe12849255046b\n"
    },
    {
      "commit": "6506bd2be256cdebc69324714c5b26c767981046",
      "tree": "68a4a39aafbe9aaa9d05d30735651c9a0087d10e",
      "parents": [
        "bf21177ccede8f01c0da0bd53392a289a5a84462",
        "14eb28444b40d76d490a184a27acbc0de95534b3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 07 20:55:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 07 20:55:40 2010 -0700"
      },
      "message": "am b91881fd: am dacabf97: Merge \"Added Visualizer effect.\" into gingerbread\n\nMerge commit \u0027b91881fdd1608cc922f105ec552b5505da1fecb9\u0027\n\n* commit \u0027b91881fdd1608cc922f105ec552b5505da1fecb9\u0027:\n  Added Visualizer effect.\n"
    },
    {
      "commit": "6c5c25fae5aa68a52c6fa75649dd559a9ca98932",
      "tree": "825ab3a8deb612c3eb8daae783670d1273c64521",
      "parents": [
        "8cafde196d36ab207f35fed89b9c1b9d468abb58",
        "da7581b7b61b84f15e8d671c86fd117c322b009e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 07 16:23:30 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 07 16:23:30 2010 -0700"
      },
      "message": "Merge \"Added Visualizer effect.\" into gingerbread"
    },
    {
      "commit": "bf21177ccede8f01c0da0bd53392a289a5a84462",
      "tree": "2c949bac7ef2da54093fa8a47c66fd7c48921bbd",
      "parents": [
        "5bb4809a27ae962be32c67b705671cdada03be00",
        "c61334edce8bd000543fa2c8172b305a887b9124"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 07 15:00:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 07 15:00:28 2010 -0700"
      },
      "message": "am b3598832: am c4243342: Merge \"Allow application to set two more encoding paramters: video profile and level\" into gingerbread\n\nMerge commit \u0027b35988329ac1a574898db9226039e37e352c57a8\u0027\n\n* commit \u0027b35988329ac1a574898db9226039e37e352c57a8\u0027:\n  Allow application to set two more encoding paramters: video profile and level\n"
    },
    {
      "commit": "145bfe5eb3e08c9689c28f6bf3287a979438b04b",
      "tree": "ba140d50bbed7d0f8cb76fb3bd7920ecc5c4a6ce",
      "parents": [
        "91952e5221d2151e10738d7228575c4afe444f5e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 01 15:02:14 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 07 12:11:53 2010 -0700"
      },
      "message": "Allow application to set two more encoding paramters: video profile and level\n\nChange-Id: I673e681cefe184d5c556c612c54600a24a2143e5\n"
    },
    {
      "commit": "da7581b7b61b84f15e8d671c86fd117c322b009e",
      "tree": "61fb39ca1eaa0a5b8a71d70683f32d238a8e74e7",
      "parents": [
        "215381ea729086b8359b7f59bdc2bd7cf55a0c45"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 02 08:12:41 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 07 11:00:28 2010 -0700"
      },
      "message": "Added Visualizer effect.\n\nThe visualizer enables application to retrieve part of the currently playing audio for visualization purpose.\nIt is not an audio recording interface and only returns partial and low quality audio content as a waveform or\na frequency representation (FFT).\n\nRemoved temporary hack made in MediaPlayer for animated wall papers based on audio visualization (snoop() method.\n\nThis commit also includes a change in AudioEffect class:\n - the enable()/disable() methods have been replaced bya more standard setEnabled() method.\n - some fixes in javadoc\n\nChange-Id: Id092a1340e9e38dae68646ade7be054e3a36980e\n"
    },
    {
      "commit": "fc20aab463f527ab3b0664986f0381a86b375884",
      "tree": "699a2eb0d208ebbe5d43e62fd4be162bb46440cf",
      "parents": [
        "633d8eadef0cd975c88e99ba7323f6414db09e3b"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Jun 30 18:51:31 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 01 14:54:36 2010 -0700"
      },
      "message": "Adding timelapse capture from videocamera.\n\nCurrent implementation looks at the timestamps of all incoming frames in\nCameraSource::dataCallbackTimestamp().\nIt drops all frames until enough time has elapsed to get the next time lapse frame.\nWhen enough time has passed to capture the next time lapse frame, the frame is no longer dropped\nand the timestamp of this frame is modified to be one frame time (1/framerate) ahead of the\nlast encoded frame\u0027s time stamp.\n\nChange-Id: I82b9d5e96113dffa6901aac3b8a8ef999ffc1d0b\n"
    },
    {
      "commit": "934da11c4cc598d3dd3b53726c362bcdcc0fd37f",
      "tree": "058428c8625d36f6cacb9259091819c785758d8d",
      "parents": [
        "1c8ed2e906576fd8d7fa03f577bdec518cbe13d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 30 12:41:16 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 01 10:28:38 2010 -0700"
      },
      "message": "Refactor Stagefright::StartMPEG4Recording()\n\n- Also, better error handling\n\nChange-Id: Ic18d08dc6489adf92c6a588efa4baca66429b175\n"
    },
    {
      "commit": "d329e21495eda9dbc531fdd0c26c77f1593ac3f4",
      "tree": "eea2f662a7089684c57020dd5f8313c978172470",
      "parents": [
        "e1e7b764b78f29b93bfe6123483e82381e4ed65d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 29 16:29:19 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 29 16:44:19 2010 -0700"
      },
      "message": "Added encoding parameters set up for H263 video encoder\n\nAlso:\n- Allowed start() call when encoder already starts and stop() call when encoder has not started yet\n- Handled default value for audio/video sources/encoders and file output format\n\nChange-Id: I03b2f7d3cf570baa0fd011a8c0ad200f2f2a5da1\n"
    },
    {
      "commit": "37047fceba836f341d0108beed0991b0f8dfc543",
      "tree": "6b60725c1d6af1ca91a46961bbecff9b996d07c2",
      "parents": [
        "93d6b102a13afa23bfa80d74c399d93d542e6ad6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 25 17:06:47 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 28 15:32:26 2010 -0700"
      },
      "message": "Separate MediaRecorderClient with MediaPlayerClient\n\n- An alternative would be to define a common base class that\n  both MediaRecorderClient and MediaPlayerClient can derive.\n  But since the common code, onTransact() and notify() uses\n  some Binder code, having a common base class may not gain\n  us too much in terms of code reuse.\n\nChange-Id: Ibc06720278ad173fceacff3d267b7060856c6316\n"
    },
    {
      "commit": "93d6b102a13afa23bfa80d74c399d93d542e6ad6",
      "tree": "a91ad03d514d09014e3b771a91d76e85564bf1e5",
      "parents": [
        "658bd258af206ebc662301979482ba4bfd88481a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 24 19:04:27 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 25 16:20:42 2010 -0700"
      },
      "message": "Provide progress status report during authoring\n\n- Track either the number of A/V frames authored, or the time elapsed\n- Track the completion of the authoring\n- Add multiple camera support for authoring by accepting a camera id parameter\n- Set file type based on the OUTPUT_FORMAT requested\n\nChange-Id: I0f9d31b3b7a8fa43eb53f572410fb0ebd4fa0bb7\n"
    },
    {
      "commit": "2dec2b5be2056c6d9428897dc672185872d30d17",
      "tree": "8ec375d6e5ec4c10c90552d0f6e02462cb598b64",
      "parents": [
        "d4b91aac78e565a135f8ef1bfda7e6317debaf35"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Jun 20 08:20:54 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 25 10:24:35 2010 -0700"
      },
      "message": "Enable passing parameters to the MediaWriter at runtime (at start() call).\n\n- estimate the moov box size for mp4 file writer based on the file\n  size/duration limit and target bit rate.\n- can switch to use 64 bit file offset at runtime\n\nrebased\n\nChange-Id: Ibbe1f57e91ab2605820d5d96e8048d11e5559c53\n"
    },
    {
      "commit": "d3d4e5069e1af0437c4f5a7b4ba344bda5b937af",
      "tree": "596bf02fa9495c743c1069ecb99b5f134afac850",
      "parents": [
        "47c778f4a5fa639b2082fcc74080d33ac847b232"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 24 19:55:31 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 24 21:59:25 2010 -0700"
      },
      "message": "Track maximum amplitude and fix getMaxAmplitude()\n\n- only start to track the max amplitude after the first call to getMaxAmplitude()\n\nChange-Id: I64d3d9ca0542202a8535a211425e8bccceca50fc\n"
    },
    {
      "commit": "608d77b1cf4fb9f63dc861e4e1fa3e80a732f626",
      "tree": "924276911b6c7b1cc35951709030559111aabe2c",
      "parents": [
        "d255a4e04d06796441ae234e8f3a8277578b3446"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 23 16:40:57 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 23 16:40:57 2010 -0700"
      },
      "message": "Remove most stagefright property overrides, remove VorbisPlayer and VorbisMetadataRetriever as this functionality is now provided by stagefright.\n\nChange-Id: Ieafe75a4550c273ad59b4518d7cd4c0fce0f7cce\nrelated-to-bug: 2370115\n"
    },
    {
      "commit": "a514bdb58b5de4986679f72b7204b4764f7a2778",
      "tree": "84b1ebf0c2b500bfb4995e373f8fee5b63b6c9fd",
      "parents": [
        "58ae9c530247668f8af36e30d228c716c226b3d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 21 09:27:30 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 22 17:14:04 2010 -0700"
      },
      "message": "Added support for audio sessions in MediaPlayer and AudioTrack.\n\nAudio sessions are used to associate audio effects to particular instances (or groups) of MediaPlayers or AudioTracks.\n\nChange-Id: Ib94eec43241cfcb416590f435ddce7ab39a07640\n"
    },
    {
      "commit": "99c2a076b4a46762a22bbb4dfbd51d107e0532d9",
      "tree": "0d44a7f577f44a060498a060d64402dd9312e48a",
      "parents": [
        "8fb4e091bc62b15bec2c05adcb50429bb76f1b28"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 16 17:27:46 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 17 11:34:10 2010 -0700"
      },
      "message": "Check and clip some video encoding parameters against media profiles before passing them to video encoder\n\nChange-Id: I69e0e7411806a4ece6c0bf0e02c74eaaf48a17ac\n"
    },
    {
      "commit": "be6ec71af2d12e2a55f2f0b1b77d3fa5d593a1c7",
      "tree": "f5d5c615025aa44ac5bb825fd4388c446366fc53",
      "parents": [
        "8aa8fe5ea704b05d8f0ab3d7bf18de18151f1b50"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 14 17:45:35 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 14 17:45:35 2010 -0700"
      },
      "message": "Remove hard-coded number of audio channels in AudioSource\n\nChange-Id: I5f362252c25e2251bbfa9818b711ee23b4975248\n"
    },
    {
      "commit": "a7d1a2dd776bf356c228785a94ba8e0ff6a2ec7f",
      "tree": "5c1bfd25a405fcf485512ffb3ced827b3d2ab630",
      "parents": [
        "6f5aae1bcba130d5b8092a19fca3627aa565df56"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 10 12:28:15 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 11 13:48:48 2010 -0700"
      },
      "message": "Initial checkin for pause and resume control\n\nChange-Id: Ibdcf7bea5fb66baa81878704ba4091dfcfe382ee\n"
    },
    {
      "commit": "9d7f58a7da8502a4174a17ac49fcba6efa35a457",
      "tree": "ed1ad79bb159ed04f2f88d063dbaf28df3bc3201",
      "parents": [
        "36ef8cf54e2bf2f96b8c7f47cd534c00ccb7b64f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 09 15:57:48 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 09 21:30:43 2010 -0700"
      },
      "message": "Remove the lock/unlock workaround from CameraService\n\nbug - 2677772\n\nChange-Id: I7c996daad8b3bfc89e9fa2d655dc18c9a5c68f2f\n"
    },
    {
      "commit": "ddcc4a66d848deef6fb4689e64e30cd9bd2684fe",
      "tree": "e34375b6ca52818e02b45af527e68e4b42c92be1",
      "parents": [
        "365a963142093a1cd8efdcea76b5f65096a5b115"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 08 11:58:53 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 08 12:30:58 2010 -0700"
      },
      "message": "Remove some hard-coded encoding parameters\n\nChange-Id: I7a8ccd5d57891a6a585c8da2ee53acb094955913\n"
    },
    {
      "commit": "cf7b9c7aae758ac0b99833915053c63c2ac46e09",
      "tree": "2480a2da149f7ba8fe651876a6173947ec8c6a16",
      "parents": [
        "e71d10e7ad55ccbcb0756c007caef1c959090384"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jun 07 15:19:40 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jun 07 15:34:45 2010 -0700"
      },
      "message": "Initial checkin of preliminary rtsp support for stagefright.\n\nChange-Id: I0722aa888098c0c1361c97a4c1b123d910afc207\n"
    },
    {
      "commit": "e136c3bb38e88315bf8797a464ebf2c788296b22",
      "tree": "c978a5038df7663487fa0ae3bbaadb8517d38f99",
      "parents": [
        "64105f956f15969dbe1ec7319f6caa2a984e588b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 20 17:55:52 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 20 18:02:52 2010 -0700"
      },
      "message": "Properly handle start code in H264/AVC encoder output\n\n- Some H264/AVC encoder output start code in each output buffer, and others don\u0027t.\n  This patch always strips the start code first so that the sample contains the correct size.\n- Also properly initialize the interleave duration.\n\nChange-Id: I692043ce7e38f0215e1097aad9e847a57907b6e4\n"
    },
    {
      "commit": "7405500bb3b5f8e8e739e344bc9d036c2736fcdf",
      "tree": "2ca617906bf73108b099c40acc646d1d117fb7e2",
      "parents": [
        "956c553ab0ce72f8074ad0fda2ffd66a0305700c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 20 11:56:06 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 20 12:01:29 2010 -0700"
      },
      "message": "Workaround for preview frame rate setting and encoder profile and level settings on passion\n1. QCOM camera HAL does not honor the preview frame rate set request. see bug - 2701282\n2. QCOM video encoder has lots of 0-length output buffers if the default level setting is changed. see bug - 2660974\n\nChange-Id: Id01d94bb77dc242c4712d56a91b0d69a96ba6c2f\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "4acdadbd8195f4fb21ff4cb72f09f088097ddf3b",
      "tree": "21b0618032478f7f9e2faa9734a5ebc642a8c55c",
      "parents": [
        "cbe4b2cb591b5e7a6a25ee4ef85aaa61c537fef0",
        "27fde958c8e8e6a998ec7a28d32b0aad97662dee"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 14 12:11:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 14 12:11:12 2010 -0700"
      },
      "message": "am 6852b198: am d3d445b1: Merge \"Use PV_PLAYER to handle RTSP streaming\" into froyo\n\nMerge commit \u00276852b198fbedd9378ed79ca6528a4d6f33b0b677\u0027 into kraken\n\n* commit \u00276852b198fbedd9378ed79ca6528a4d6f33b0b677\u0027:\n  Use PV_PLAYER to handle RTSP streaming\n"
    },
    {
      "commit": "27fde958c8e8e6a998ec7a28d32b0aad97662dee",
      "tree": "8e54465cfbb6b009d840a3d82aeaf3e11e125561",
      "parents": [
        "b9dbba9285fb406bc6eb87779c8bfc405269b6f2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 21:33:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 14 08:57:14 2010 -0700"
      },
      "message": "Use PV_PLAYER to handle RTSP streaming\n\nbug - 2594865\n\nChange-Id: Ice5b89b1d53bbc4da033892fe545bdf51ac7267f\n"
    },
    {
      "commit": "fe774a9c3ffe12979e182563b0e922ffc0ad20ef",
      "tree": "2d345e603f5e4803a9003496712098ef457b0cb0",
      "parents": [
        "6e4f79aa417cf7ef9dcf3f4a36ee671886f7f40e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 05 13:25:12 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 13:44:28 2010 -0700"
      },
      "message": "Remove legacy NO_OPENCORE code bypass from MediaPlayerService.\n\nChange-Id: I72db73c91673e0d7f1090e3b033ae915337dc16e\n"
    },
    {
      "commit": "fc1c7b940c84793ad262a345af117c482a86acec",
      "tree": "ca280453b8124bb8945a6938072dda402f02002c",
      "parents": [
        "d8ee0c22b1bd5a7f0e37f41d68e868d5077fe92b"
      ],
      "author": {
        "name": "Atsushi Eno",
        "email": "atsushieno+android@gmail.com",
        "time": "Fri Mar 19 23:18:02 2010 +0900"
      },
      "committer": {
        "name": "Atsushi Eno",
        "email": "atsushieno+android@gmail.com",
        "time": "Fri Mar 19 23:18:02 2010 +0900"
      },
      "message": "Accept media files by file extension in case insensitive manner.\n\nChange-Id: I8e246010c96802ae87960797607fc8f8f2ab6031\n"
    },
    {
      "commit": "fe4c6f01646de47d41bbe3aa6d17c6a0daa2b730",
      "tree": "6e4d901b2639b6ddae3f740b287a54c7afcf5b6b",
      "parents": [
        "4bbc0ba371c52951191eff1cba7c1ea5d27ee976"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Tue Mar 02 12:56:37 2010 -0800"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Tue Mar 02 12:56:37 2010 -0800"
      },
      "message": "Fix build. I screwed up a merge.\n"
    }
  ],
  "next": "4bbc0ba371c52951191eff1cba7c1ea5d27ee976"
}
