)]}'
{
  "log": [
    {
      "commit": "15e991bdf8870c2c9820c2d98e0d30dae2e05a25",
      "tree": "ad4f68934ac1f3dc1f20f9dedbccf89d1f6b75d7",
      "parents": [
        "39f64a1e4903624bd6395aa2a1c6875a10ed489d",
        "0b09da7a98d5f55674dba7b380e1b8d262f709b0"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 08 10:02:30 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 08 10:02:30 2015 -0700"
      },
      "message": "resolved conflicts for 0b09da7a to lmp-mr1-dev\n\nChange-Id: Ib6a1aa4cee00e0449da30ae158d71403d6236487\n"
    },
    {
      "commit": "2482595baadd16f20d3992c8c9d6a14061836872",
      "tree": "1b2d060855dc645f847ff2143e359166005f829a",
      "parents": [
        "07395f4cd72cf29d1de2864cde42876db4e54411"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Sep 28 11:32:23 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 07 13:53:25 2015 -0700"
      },
      "message": "DO NOT MERGE - OMX: allow only secure codec to remotely call allocateBuffer.\n\nBug: 24310423\nChange-Id: Iebcfc58b447f925ec2134898060af2ef227266a3\n(cherry picked from commit 8dde7269a5356503d2b283234b6cb46d0c3f214e)\n"
    },
    {
      "commit": "2ea335b11c1e328896a6c7a2e6d2bc190b7f06fc",
      "tree": "b12bf3da1c3457982ccff6c6d4aeb24d90ffb639",
      "parents": [
        "afa0e3698355f341009a8042d62c82016f86a1c8",
        "fecbc5da64a992f91f74ef6c67a7e247b0da7777"
      ],
      "author": {
        "name": "Jon Larimer",
        "email": "jlarimer@google.com",
        "time": "Tue Aug 18 15:13:19 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 15:13:19 2015 +0000"
      },
      "message": "am fecbc5da: am 5b4a5cce: Merge \"do not dequeue from native window after we hit fatal error -- DO NOT MERGE\" into lmp-dev\n\n* commit \u0027fecbc5da64a992f91f74ef6c67a7e247b0da7777\u0027:\n  do not dequeue from native window after we hit fatal error -- DO NOT MERGE\n"
    },
    {
      "commit": "bf47eb9c67ed364f3c288954857aab9d9311db4c",
      "tree": "5ba3da2bb1e2103a1719e9c014dfb290392ff0b1",
      "parents": [
        "e4ac35fa524b011f272d396b2c12515382bddb94"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 14 13:50:02 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 17 17:14:50 2015 +0000"
      },
      "message": "do not dequeue from native window after we hit fatal error -- DO NOT MERGE\n\nbug: 22845824\nChange-Id: I8c375790c697e02b6ab3ea54b84d3f70d5e78141\n(cherry picked from commit 346de3c26a8fbd0fa0c8102f4a21ea4dcee4432a)\n"
    },
    {
      "commit": "dfaea255546340742b42c216663f61c6b7301c4f",
      "tree": "7e77aeb1072938040bab56ba4a9ed6b48c0a8473",
      "parents": [
        "fbf1c8d65fe257847b35ec7289f9450ac34c8034",
        "578d5b66fc9f5e36ca0cb19b21771aa85ec131ee"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 07 14:47:48 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 07 14:47:48 2015 +0000"
      },
      "message": "am 578d5b66: am 171b5fad: am d6ea7f65: am f26400c9: Fix crash on malformed id3\n\n* commit \u0027578d5b66fc9f5e36ca0cb19b21771aa85ec131ee\u0027:\n  Fix crash on malformed id3\n"
    },
    {
      "commit": "171b5fadb9d304f5e06686e4f3d060ef335d7250",
      "tree": "8d45331766e9cb5c701db4a8ca4e51e89f1ac5ad",
      "parents": [
        "d8bb17e33ef33ce173fa2d096211785145d41921",
        "d6ea7f65dd31d5dacf497cc3c494d4fa3910f7c3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 07 14:32:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 07 14:32:40 2015 +0000"
      },
      "message": "am d6ea7f65: am f26400c9: Fix crash on malformed id3\n\n* commit \u0027d6ea7f65dd31d5dacf497cc3c494d4fa3910f7c3\u0027:\n  Fix crash on malformed id3\n"
    },
    {
      "commit": "d6ea7f65dd31d5dacf497cc3c494d4fa3910f7c3",
      "tree": "b62ef0d8d86dd5a159fda3997b7b7369ced8a96c",
      "parents": [
        "42bd61d73e8b4d0b1101e73324a59fde51077112",
        "f26400c9d01a0e2f71690d5ebc644270f098d590"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 07 14:25:10 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 07 14:25:10 2015 +0000"
      },
      "message": "am f26400c9: Fix crash on malformed id3\n\n* commit \u0027f26400c9d01a0e2f71690d5ebc644270f098d590\u0027:\n  Fix crash on malformed id3\n"
    },
    {
      "commit": "f26400c9d01a0e2f71690d5ebc644270f098d590",
      "tree": "b96386b9c3bf83c969ed207dbd7b53eb29e6c6a3",
      "parents": [
        "d9a9a324766b26be2ff0d10537ea0b215b0261e3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 04 16:49:28 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 04 23:52:34 2015 +0000"
      },
      "message": "Fix crash on malformed id3\n\nBug: 22954006\nChange-Id: I488cb1e2c69fc7043b6040481b30fa866000515d\n"
    },
    {
      "commit": "bcf2becf206b5d56c89bf2b43356fd7995003302",
      "tree": "0fa5c016138944033cdfe35b821853499541dc56",
      "parents": [
        "07e80f7a2da0a28d977adfb0372fdf385f964bc7",
        "c531d9956513b9b82dad84aeb507b866e6b3951a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue May 12 22:14:58 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 12 22:14:58 2015 +0000"
      },
      "message": "am c531d995: am 438217a0: Merge \"Add AUtils::isInRange, and use it to detect malformed MPEG4 nal sizes\" into lmp-dev\n\n* commit \u0027c531d9956513b9b82dad84aeb507b866e6b3951a\u0027:\n  Add AUtils::isInRange, and use it to detect malformed MPEG4 nal sizes\n"
    },
    {
      "commit": "a3e8f60f5e409f65f12636df5fad7f20ff736df5",
      "tree": "782d8d5c457afc6b57397ea6890f06b4c0067eec",
      "parents": [
        "5a75b4215821d633af18dd8dae2495299c070bf0",
        "7acac10aae34da5ae4d628c5a270e7e3e94f7598"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon May 11 11:10:36 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 11 11:10:36 2015 +0000"
      },
      "message": "am 7acac10a: Merge \"DO NOT MERGE: Add AUtils::isInRange, and use it to detect malformed MPEG4 nal sizes\" into klp-dev\n\n* commit \u00277acac10aae34da5ae4d628c5a270e7e3e94f7598\u0027:\n  DO NOT MERGE: Add AUtils::isInRange, and use it to detect malformed MPEG4 nal sizes\n"
    },
    {
      "commit": "67a30ebfe785f7cd5ecfb0d2fb487e54536a3d48",
      "tree": "2d7fa0640fa55b339ae5083e7d75022ab3d56720",
      "parents": [
        "6429079345404932c5be5956efc7154390d2ed0e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Apr 01 19:32:25 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Sat Apr 25 00:46:59 2015 +0000"
      },
      "message": "DO NOT MERGE: Add AUtils::isInRange, and use it to detect malformed MPEG4 nal sizes\n\nBug: 19641538\nChange-Id: I5aae3f100846c125decc61eec7cd6563e3f33777\n"
    },
    {
      "commit": "bfed843041b6aaec13ee19996748a7a1476db9c8",
      "tree": "f6f6744dbf809a6d7897767f264944922fe954cf",
      "parents": [
        "eb204f82afd5519eb544bf8bee692e7152820c3b"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Apr 01 19:32:25 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 24 17:10:41 2015 -0700"
      },
      "message": "Add AUtils::isInRange, and use it to detect malformed MPEG4 nal sizes\n\nBug: 19641538\nChange-Id: I5aae3f100846c125decc61eec7cd6563e3f33777\n"
    },
    {
      "commit": "35d5af131c9d4962e935082f204ccd6a2130861c",
      "tree": "3a0456f7e9ddba7cddb0769f2a15d1589f820647",
      "parents": [
        "17e95f40a534101e2df48f077a8029430adef6c3"
      ],
      "author": {
        "name": "Weiyin Jiang",
        "email": "wjiang@codeaurora.org",
        "time": "Wed Jan 28 16:14:02 2015 +0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Feb 06 16:32:24 2015 -0800"
      },
      "message": "nuplayer: acquire wakelock during offload pause timeout\n\nHold a wakelock while paused in audio offload mode, until audio\nteardown event is received, or pause is canceled.\n\nSince ARM cores are sleeping, the delayed AMessage will not be\nreceived, and the audio output driver will not be closed.\nThis blocks XO shutdown.\n\nBug: 19297092\nChange-Id: I3d11fef633e3f2783f4aa31e71285e2fa09d234c\n"
    },
    {
      "commit": "3a01a71dcbb467d06cc5da4a72a82bb588648cfc",
      "tree": "f35a84d74ff7cbcf6199d46c444acae9775880f8",
      "parents": [
        "57f75272fcd16b205ed60cdd0b33ffc19991fd10"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jan 30 19:30:05 2015 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 04 12:58:17 2015 -0800"
      },
      "message": "stagefright: add fallback for native flex-YUV support\n\nUse software renderer if codec cannot support flex-YUV on a surface\n\nBug: 17906609\nChange-Id: I3d0e3ff5fee7d7b3e2416892968fa18f6139598a\n"
    },
    {
      "commit": "0d09182a1dde960f7acda1c28469e5deead1b996",
      "tree": "ccbf3a9429264d06cb957f2664ae47fef80e3646",
      "parents": [
        "efbb61950db36a5eb789be83f077246172507c67"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jan 30 14:07:25 2015 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Feb 04 00:02:58 2015 -0800"
      },
      "message": "stagefright: add support for native flex-YUV formats\n\nBug: 17906609\nChange-Id: I14116796eaa94aa8ae62dcc29f67cb7d2c060d34\n"
    },
    {
      "commit": "78b01639c08fe5e7e9c1be5e9dc5de560f1383f9",
      "tree": "0187106f6f7e64716a6cc66a57450559fc61d400",
      "parents": [
        "64c496c8d51c71605cd34a510da2ecd8180656ec"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Thu Jan 29 19:24:08 2015 -0800"
      },
      "committer": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Thu Jan 29 19:24:08 2015 -0800"
      },
      "message": "Acodec: Send framerate information to OMX decoder if available\n\nBug: 19110889\nChange-Id: Ia8dbe1b77aaac421ec9415884e1248b9b68168dc\n"
    },
    {
      "commit": "0b460ad7557f6be56aad3fa027d93b38d5995ac4",
      "tree": "12dd16e6b1087cc75aae47c8550f312554efbb86",
      "parents": [
        "38a97bd7891cb0e16f8127510aa81b1b05df3f17",
        "8a4728966dc9c78e21c3c93a927707e93c05e5e0"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Sat Jan 10 01:31:02 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 10 01:31:02 2015 +0000"
      },
      "message": "Merge \"ACodec: Added support for E-AC3 decoders\" into lmp-mr1-dev"
    },
    {
      "commit": "1713460104b86f6be3a5d9993d9ace864d889b2d",
      "tree": "47be834572c94f418cd6d087e953a53a9d655127",
      "parents": [
        "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 16:14:34 2015 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 17:08:43 2015 -0800"
      },
      "message": "mark any copyrighted content as protected to disable capture\n\nbug: 18916274\nChange-Id: I23f096b51433bf18a10dc5fe6dc6b75c3881c340\n"
    },
    {
      "commit": "8a4728966dc9c78e21c3c93a927707e93c05e5e0",
      "tree": "6b27f91419fcecb7d06f277b03d74e68676e8d68",
      "parents": [
        "0d19abb440c7e62e944efbeadf02299990f9a589"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Tue Dec 23 16:10:32 2014 -0800"
      },
      "committer": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Tue Dec 23 16:10:32 2014 -0800"
      },
      "message": "ACodec: Added support for E-AC3 decoders\n\nBug: 17883772\n\nChange-Id: I05f674c33522eec0e6ceeece88dd800b1857b3ab\n"
    },
    {
      "commit": "eee82e44548f17253c2e06b25725f91c7b549ec2",
      "tree": "cf936ad01c06be9f7e8fe80cf83f73b630de4db7",
      "parents": [
        "8ddb02230d02968d471aa41b22433957c38827c0"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 12 12:27:54 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 12 20:18:35 2014 -0800"
      },
      "message": "MediaCodecList: handle binder death\n\nBug: 18691591\nChange-Id: Icc402d6ea9b0de4ac642c3b403fb64e865481b2e\n"
    },
    {
      "commit": "a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5",
      "tree": "913e39ed6eff31c956135701290e1a5af21fd0f8",
      "parents": [
        "94a92c69af528edf6ec17d7978a0c3bb6ab51e63"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 24 13:57:35 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Dec 10 18:04:14 2014 -0800"
      },
      "message": "stagefright: misc fixes to software video encoders (and decoders)\n\n- move logic to set encoder parameters to common encoder class\n  (similarly to what was done for decoders)\n- set compressed buffer size based on frame size and compression ratio,\n  and codec-specific minimum size\n- set raw buffer size based on frame size and metadata mode\n- do not set stride and slice height on compressed ports\n- advertise only QCIF support for google H263 encoder\n- set large-enough input size for video decoders to support adaptive\n  playback\n- do not change input buffer size on output port reconfiguration, as\n  no input buffer reallocation takes place\n- do not return empty buffers with EOS after EOS has been signaled\n\nBug: 18513091\nBug: 18639027\nChange-Id: Ib13492ef66adf331aa4572c67d2b283ea020cb41\n"
    },
    {
      "commit": "baac183f3808d7b68f184647a97bd381620415fe",
      "tree": "af81e602db02f55eb35852e3d0851499199166ed",
      "parents": [
        "275e8e9de2e11b4b344f5a201f1f0e51fda02d9c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 01 17:52:59 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 09 15:47:30 2014 -0800"
      },
      "message": "audio policy: binder calls for dynamic audio policy mixes\n\nAdd binder calls to register and unregister dynamic mixes\nto AudioPolicyManager.\n\nBug: 16009464.\n\nChange-Id: I4ef38166d0cfc88c984970969380d0cd6eb083ac\n"
    },
    {
      "commit": "275e8e9de2e11b4b344f5a201f1f0e51fda02d9c",
      "tree": "c22e1c0b8541aa04fd6c8d803e4fa6704a84e6e2",
      "parents": [
        "82a69ea8b090d57bff5e02774688b546a711bbb8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Nov 30 15:14:47 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 09 15:47:19 2014 -0800"
      },
      "message": "audio policy: add support for custom mixes\n\nAdd support for custom mixes in AudioPolicyManager.\n\nTwo methods are added to register or unregister a list of custom mixes\nwith their attributes and format.\n\ngetOutputForAttr() and getInputForAttr() first look for a match in\nregistered mixes before defaulting to normal output/input selection\n\nRemote submix device connection disconnection now takes address into\naccount to identify the correspnoding custom mix.\n\nBug: 16009464.\n\nChange-Id: I3f1c2a485a0fb71b1f984ed0adc9b68aa971e408\n"
    },
    {
      "commit": "4e865a3cfe4c955e0890321a6b488cf661808b63",
      "tree": "468dc095999eef48d402e92af1b6b80eaed36333",
      "parents": [
        "a147c17adabaab819ac108fbc448c49525cf74bc"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 05 15:54:51 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Dec 05 16:05:58 2014 -0800"
      },
      "message": "stagefright: preserve output format flags on format change\n\nSome flags are only set in configure, and get lost when output\nformat changes.\n\nBug: 17383204\nChange-Id: I2011bce70920c4ee46fccc378da3b428f3395c11\n"
    },
    {
      "commit": "caf7f48a0ef558689d39aafd187c1571ff4128b4",
      "tree": "7a2c90732783e2c90cabb6045c4ab0dcea842bf1",
      "parents": [
        "087eb332cdd64026de27c914194127f8fda1a846"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 17:50:47 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 17:50:47 2014 -0800"
      },
      "message": "AudioRecord: use audio attributes instead of audio source.\n\nAdded AudioRecord constructor with audio attributes.\nReplaced AudioPolicymanager::getInput() by getInputForAttr().\n\nNo new functionality for now.\n\nAlso:\n\n- Fixed warnings in AudioPolicyManager\n- Allocate audio session ID before calling getOutputForAttr() in\nAudioTrack.\n\nBug: 16006090.\nChange-Id: I15df21e4411db688e3096dd801cf579d76d81711\n"
    },
    {
      "commit": "e83b55dc29ca16092ba02f36f55fa6e0e37fd78c",
      "tree": "f8232611b6372b74579e3ed03dfbeb167011d257",
      "parents": [
        "0f78eabb733e1413d7febd00c0bad0f0add02314"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 14 10:06:21 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 12:48:19 2014 -0800"
      },
      "message": "audio policy: new getOutputForAttr() prototype.\n\nUpdate getOutputForAttr() prototype and group all logic\ndealing with audio attributes to stream type conversion in\naudio policy manager.\n\ngetOutputForAttr():\n- specifies the audio session (for future use)\n- returns a status code\n- receives either stream type (for legacy) or audio attributes\n- returns an updated streamtype\n\nRemove logic dealing with legacy stream types to attributes conversion\nfrom AudioTrack.\n\nUse correct type for audio sessions in other APIs (startOutput() ...).\n\nreleaseOutput() specifies the audio session (for future use).\n\nBug: 18067208.\n\nChange-Id: I1bfbe9626c04c7955d77f8a70aecfad2cb204817\n"
    },
    {
      "commit": "0ebd5f95b68a3a5c9e5509f21938c9e51e74d71b",
      "tree": "0a2939a70644eb37c401705c8211d65bac553743",
      "parents": [
        "18899808001ddaea13fa4c5277502c96351f69a5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 19 19:04:52 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 09:15:02 2014 -0800"
      },
      "message": "AudioSystem: fix cross deadlock\n\nDo not hold gLockAPS when calling\nAudioPolicyService::registerClient() in get_audio_policy_service().\nregisterClient() will need to acquire the AudioPolicyService mutex and\nif at the same time a method called from AudioPolicyService\n(with mutex held) calls back into AudioSystem and get_audio_policy_service()\na cross deadlock occurs.\n\nSame preventive fix for get_audio_flinger().\n\nUse a separate mutex for notification client list in AudioPolicyService.\nThis prevents deadlocking if registerClient() is called as a consequence of\nAudioFlinger calling back into AudioPolicyManager while executing a method\nwith AudioPolicyService locked\n\nBug: 18403952.\nBug: 18450065.\nChange-Id: Ia832e41aede8bc6c843fc615508fbdd74e0863b5\n"
    },
    {
      "commit": "f6778fd0c72ab54328f0e9f5ecf0017b73e99dd8",
      "tree": "8f31be289f16ae8d684699ba80d533b249923e18",
      "parents": [
        "35b0f7095fac4f2cc112edd4b0298a9cb1ee394f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 18 17:26:58 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 19 09:12:16 2014 -0800"
      },
      "message": "AudioSystem: Add mutex for output cache\n\nFix cross deadlock with AudioFlinger by adding\na dedicated mutex to protect access to cached output list\nand parameters.\n\nBug: 18410728.\nChange-Id: Ia31283b1972d8865a46e84e63695173c187eb781\n"
    },
    {
      "commit": "990dad996b748fdaa2041cc6d039e96ccfeae6fb",
      "tree": "7456bb2af05b32fa76e611e26c689b13e32d13fc",
      "parents": [
        "cede28e22bce0c92a6d139b51d2c007d2e3f6fca",
        "0d6db582f2ccc9f8943c5f3965e2994b7d137158"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 14 17:40:27 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 14 17:40:28 2014 +0000"
      },
      "message": "Merge \"remove AudioSystem::getOutputSamplingRateForAttr()\" into lmp-mr1-dev"
    },
    {
      "commit": "cede28e22bce0c92a6d139b51d2c007d2e3f6fca",
      "tree": "fcee5c8e7a56c4fd055afd0e908b6900a77d6cae",
      "parents": [
        "97e6ca1a0be83e420ab238d9a1c31d3112126646",
        "f296e2b262d2a8f7c570eaed454a28cca99eb976"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Nov 14 10:03:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 14 10:03:47 2014 +0000"
      },
      "message": "Merge \"stagefright: add runtime debug support\" into lmp-mr1-dev"
    },
    {
      "commit": "97e6ca1a0be83e420ab238d9a1c31d3112126646",
      "tree": "19eff16ab736ee29034f5f68043a5cf07c5fde78",
      "parents": [
        "12acd3f0374e7707ff50c04f8075883be71b128c",
        "1099188151eb63af24ecf542b58d4257bbb8236a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Nov 13 23:15:06 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 13 23:15:07 2014 +0000"
      },
      "message": "Merge \"Stagefright: use MediaCodec in async mode for recording\" into lmp-mr1-dev"
    },
    {
      "commit": "0d6db582f2ccc9f8943c5f3965e2994b7d137158",
      "tree": "bdd0de4b94942f7490dfe7b59b96bb4fa65a136a",
      "parents": [
        "538596f71dc667b2f39c27d0bc9bbf119b0e6d58"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 12 18:39:44 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 12 18:52:20 2014 -0800"
      },
      "message": "remove AudioSystem::getOutputSamplingRateForAttr()\n\nIt is safer to query the output sampling rate once the output\nhave been acquired by calling getOutputForAttr().\n\nBug: 16009464.\nChange-Id: Ib561facd19fba5359a6b837d75f1a1cd2dc51b29\n"
    },
    {
      "commit": "1099188151eb63af24ecf542b58d4257bbb8236a",
      "tree": "d1f15d781c76f511465da68c6d334ebcaf8b6eac",
      "parents": [
        "868e2f0148b1c491e4fd4839b46d73f6216a058d"
      ],
      "author": {
        "name": "Praveen Chavan",
        "email": "pchavan@codeaurora.org",
        "time": "Thu Oct 16 11:49:14 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Nov 12 17:22:36 2014 -0800"
      },
      "message": "Stagefright: use MediaCodec in async mode for recording\n\nAsync mode reduces the number of messages posted between\nMediaCodec and MediaCodecSource. This reduces thread\nwakeups and helps reduce CPU utilization.\n\nBug: 18246026\nChange-Id: I4b0837f309fdd12e323c1dfa72525f5a31971a03\n"
    },
    {
      "commit": "f296e2b262d2a8f7c570eaed454a28cca99eb976",
      "tree": "bd87223950d92c27fc69601ddeddbf8e219742e4",
      "parents": [
        "94691b01a94d3ae115a7181c99db58fbeb785c64"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Jun 18 18:08:52 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Nov 12 15:59:04 2014 -0800"
      },
      "message": "stagefright: add runtime debug support\n\nBug: 18285408\nChange-Id: I56346f4652b2c5f7ef5fa3003fd8676051339384\n"
    },
    {
      "commit": "6d60079e97c5fd6ba7de7b60adb0a027c0608d19",
      "tree": "9ebbce57d5015eb8ac2356af7ed14b84136b9916",
      "parents": [
        "995599cbd6ada739c257716a6d8b90eee6d61473",
        "99370d2da54d7537ffda7fef1f6ef36f8b690321"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 23:31:32 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 23:31:32 2014 +0000"
      },
      "message": "am 99370d2d: am ae6965ae: am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\n* commit \u002799370d2da54d7537ffda7fef1f6ef36f8b690321\u0027:\n  IAudioPolicyService: bound array size in queryDefaultPreProcessing\n"
    },
    {
      "commit": "99370d2da54d7537ffda7fef1f6ef36f8b690321",
      "tree": "1ba4953c98fd3eeaa6f9a3fc2ab3e88003da23e4",
      "parents": [
        "ca83dd27f6c662bcbb0cea204c4df7ca77a479fd",
        "ae6965ae7664aaea489a8d58358035610075c9af"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 23:28:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 23:28:27 2014 +0000"
      },
      "message": "am ae6965ae: am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\n* commit \u0027ae6965ae7664aaea489a8d58358035610075c9af\u0027:\n  IAudioPolicyService: bound array size in queryDefaultPreProcessing\n"
    },
    {
      "commit": "ae6965ae7664aaea489a8d58358035610075c9af",
      "tree": "fd4406ad0fbd33d98a2cca8407aad354f9baa58b",
      "parents": [
        "42f785c5d5ae596d781171327c98c541f0517feb",
        "3aef35600523eb6b4ccc8086a8913e80701a031a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 23:20:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 23:20:25 2014 +0000"
      },
      "message": "am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\n* commit \u00273aef35600523eb6b4ccc8086a8913e80701a031a\u0027:\n  IAudioPolicyService: bound array size in queryDefaultPreProcessing\n"
    },
    {
      "commit": "e360f0f6cad290f69e07fd3a20dcf11a1dbc4160",
      "tree": "6e19a985df2a12cf74d713b689556cfc735f0088",
      "parents": [
        "96016c2d583ccca9fffd6974cb9473f7effd6cf5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 05 12:15:36 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 19:43:46 2014 +0000"
      },
      "message": "IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\nBug: 18226810.\nChange-Id: Ib8e2bfe835a8681aac50bf23161db14e50c9a124\n(cherry picked from commit 74adca9ad30b7f8a70d40c5237bade0d16c4ea58)\n"
    },
    {
      "commit": "e662cd5cdbe1312d6b74754d2945fffe99e4fe2c",
      "tree": "68e681598ebc7f78ca041a51011652700694f7d8",
      "parents": [
        "1609e451cf6101efe6aeaaa2da61db2cb095c9e8",
        "d2d089fc86c62843992e7d5b371ee9227189a1e6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 07 21:23:26 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 07 21:23:28 2014 +0000"
      },
      "message": "Merge \"Improve AudioTrack recovery from mediaserver death\" into lmp-mr1-dev"
    },
    {
      "commit": "1609e451cf6101efe6aeaaa2da61db2cb095c9e8",
      "tree": "f09b7bb9b88d37985ca41e255f4efc8ffa769905",
      "parents": [
        "c339a921642c38621f57e95b4ec41cfaa99c7a63",
        "04f101c35eaa90b1f95939afac30674ec1611e6f"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Fri Nov 07 19:44:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 07 19:44:30 2014 +0000"
      },
      "message": "Merge \"Add a BufferItem parameter to onFrameAvailable\" into lmp-mr1-dev"
    },
    {
      "commit": "a36060891425c4ce0621e40344ac473ec14924dd",
      "tree": "f098fd77fb7661b83e3c43f31aec6f30316f4f34",
      "parents": [
        "1cf9ad1abb599ce4057189e0db154cf00b4913f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 06 18:07:23 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 06 18:07:23 2014 -0800"
      },
      "message": "AudioSystem: remove obsolete method.\n\nBug: 18067208.\nChange-Id: I9bbf9088485f5162c765ca504d9b784b956234c6\n"
    },
    {
      "commit": "1cf9ad1abb599ce4057189e0db154cf00b4913f8",
      "tree": "1bbf6047da0636dddcac32a904d55c2cd87d2ba0",
      "parents": [
        "19a3f69d9d5398db62ee7b15f2c13052d7ee9f07",
        "2514d080c8a54ff603a45d7e336de668fe7329db"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Nov 06 02:36:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 06 02:36:17 2014 +0000"
      },
      "message": "Merge \"Pass resolution to Crypto plugin on format change\" into lmp-mr1-dev"
    },
    {
      "commit": "19a3f69d9d5398db62ee7b15f2c13052d7ee9f07",
      "tree": "cf8ab0afd5e431df089fb7a45499fd1981ba4fc4",
      "parents": [
        "74adca9ad30b7f8a70d40c5237bade0d16c4ea58",
        "3c1285e8f86bd497e14c14fb6df7b42072ef52bd"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Nov 06 02:33:37 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 06 02:33:37 2014 +0000"
      },
      "message": "Merge \"Add missing secure stop methods\" into lmp-mr1-dev"
    },
    {
      "commit": "d2d089fc86c62843992e7d5b371ee9227189a1e6",
      "tree": "9bbab0fe070321be1612e188c835de59375f7e26",
      "parents": [
        "ed1e55c5276a1c031e9b2f016387c7d2fe7bc47f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 05 11:48:12 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 05 14:51:19 2014 -0800"
      },
      "message": "Improve AudioTrack recovery from mediaserver death\n\n1. Fix race condition in handling of binder death notifications.\n\nAudioSystem has a mixture of APIs for both ordinary app clients,\nand the AudioFlinger and AudioPolicy services within mediaserver.\nDue to this mix of uses, it is possible for there to be \"surprising\"\nsequences of calls on the call stack.\n\nPreviously, we used a single mutex for all global variables, but\nthis caused a deadlock.  To avoid the deadlock, we unlocked the mutex\nduring the critical sequence of calls.  But this was a a\ncrucial place where it should have stayed locked;\nsee Change-Id I315c1c5066f62b05e1c13b04fae1272b5fbce977\n\nNow we use separate mutexes for the AudioFlinger, AudioPolicy, and audio port\nrelated global variables.  This allows us to correctly hold each mutex\nthroughout the atomic region, even when AudioFlinger calls AudioPolicy\nvia AudioSystem, or vice-versa.\n\n2. AudioSystem::clearAudioConfigCache now clears the IAudioFlinger reference.\n\n3. Make AudioSystem::get_audio_policy_service more like get_audio_flinger.\n\nBug: 18242291\nChange-Id: I9761443d8337df5bf66d4ca2316a9fd0bd11be94\n"
    },
    {
      "commit": "74adca9ad30b7f8a70d40c5237bade0d16c4ea58",
      "tree": "13e642689e945e69b76ac095a6bec978debf4084",
      "parents": [
        "ed1e55c5276a1c031e9b2f016387c7d2fe7bc47f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 05 12:15:36 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 05 12:33:59 2014 -0800"
      },
      "message": "IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\nBug: 18226810.\nChange-Id: Ib8e2bfe835a8681aac50bf23161db14e50c9a124\n"
    },
    {
      "commit": "04f101c35eaa90b1f95939afac30674ec1611e6f",
      "tree": "638649883fdc1e7329b9334b5a1a7461b7421942",
      "parents": [
        "151b3f41ffcdf187580542ba0c0d3b84df16beed"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Tue Nov 04 11:32:52 2014 -0800"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Tue Nov 04 11:32:52 2014 -0800"
      },
      "message": "Add a BufferItem parameter to onFrameAvailable\n\nPasses the BufferItem for the queued buffer to the onFrameAvailable\ncallback so the consumer can track the BufferQueue\u0027s contents.\n\nBug: 18111837\nChange-Id: If9d07229c9b586c668e5f99074e9b63b0468feb0\n"
    },
    {
      "commit": "2514d080c8a54ff603a45d7e336de668fe7329db",
      "tree": "c02e8521f99240935f7c672c9d79846addd785cb",
      "parents": [
        "3c1285e8f86bd497e14c14fb6df7b42072ef52bd"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Nov 03 13:29:35 2014 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Nov 03 18:39:23 2014 -0800"
      },
      "message": "Pass resolution to Crypto plugin on format change\n\nChange-Id: I56cd557ce3525fe625db8c312d2557d3c8b51101\nrelated-to-bug: 16034599\n"
    },
    {
      "commit": "3c1285e8f86bd497e14c14fb6df7b42072ef52bd",
      "tree": "82c107d9b3001bf4f9d375b7d655968abe20c2c3",
      "parents": [
        "6e8212b2a02685e50d0c093a6f44d9af636261d9"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Oct 31 00:55:16 2014 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Oct 31 00:55:16 2014 -0700"
      },
      "message": "Add missing secure stop methods\n\nb/18053197\nb/18076411\n\nChange-Id: I923dc893d48c70bf17980007b32f0ac5dfd22896\n"
    },
    {
      "commit": "df2592beab557663a471da2ac33ca463f7eee722",
      "tree": "3cbf80d5599885efcc103c129c799349bb70790d",
      "parents": [
        "31551f8dd625b8d40961e141d2913b0073f852ab"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Oct 24 18:53:44 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Oct 27 22:22:57 2014 +0000"
      },
      "message": "do not hold mNotifyLock when calling MediaPlayer::notify\n\nBug:18120688\nChange-Id: Ia66dcfc3fd2d67d1ceba9808d21e0120cc8691d6\n"
    },
    {
      "commit": "258420480e1edc73b112a5994a8456e31c558860",
      "tree": "d36112992f8402264834df923ff0c7500c11c6de",
      "parents": [
        "6ce19d24ff985cf845f04c2d6542ce03c7d07964",
        "30358faf33fb9b638257b017fadb4c5f7352d903"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 22 00:29:43 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 22 00:29:43 2014 +0000"
      },
      "message": "Merge \"stagefright: try to free codec instance if MediaCodec.release hangs\" into lmp-dev"
    },
    {
      "commit": "30358faf33fb9b638257b017fadb4c5f7352d903",
      "tree": "9cf39ac9b04a8de88c5b1dbd40d2c8631efc2115",
      "parents": [
        "7de5ac1f067ec61f7ea424d5534cfd40987b11fa"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Oct 21 16:07:52 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Oct 21 16:14:11 2014 -0700"
      },
      "message": "stagefright: try to free codec instance if MediaCodec.release hangs\n\nBug: 18033275\nChange-Id: If86cd26566d7b75941976f37829bbec619800778\n"
    },
    {
      "commit": "52dfbee90cc3c4426428318e06a92774f5201198",
      "tree": "3721c673f64eefe2bab9a7065ccc17a6f5109800",
      "parents": [
        "7de5ac1f067ec61f7ea424d5534cfd40987b11fa"
      ],
      "author": {
        "name": "Praveen Chavan",
        "email": "pchavan@codeaurora.org",
        "time": "Wed Oct 15 02:24:34 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Oct 21 11:15:08 2014 -0700"
      },
      "message": "Stagefright: MediaCodec: shutdown allocated codec on error\n\nIf MediaCodec sees a fatal error and transitions to\nUNINITIALIZED state, The codec may still be alive (with an\nexception of \u0027mediaserver-died\u0027 error).\nHandle Shutdown of the codec during release().\n\nBug: 17784012\nBug: 18033275\n\nChange-Id: I891e036499d9b440a57f77fb735a5ba4da9a6e43\n"
    },
    {
      "commit": "584c14c370f141685b7e8963a13ed91584383ca1",
      "tree": "3fec4de36f0907212c5d7f2375f537bcfb3f9c35",
      "parents": [
        "e48b90d634f9e6190a788e6225927d418b11d162",
        "ab76066c11e988ca3d3a5d6d74dd510ae080322e"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Tue Oct 07 01:56:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 07 01:56:59 2014 +0000"
      },
      "message": "Merge \"stagefright: do not allocate output buffers for tunneled playback\" into lmp-dev"
    },
    {
      "commit": "f2a64852a4a48c5a3d8a08ffcda20d6884586672",
      "tree": "6f9909217ea845e3d57580240ad00116d7408069",
      "parents": [
        "b220fe0e40bc3752b62a9576fc824634a16fc3ab"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Oct 03 16:12:37 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Oct 03 23:25:54 2014 +0000"
      },
      "message": "MediaRecorder: only dequeue available buffers from MediaCodec\n\nBug: 17514968\nChange-Id: If232f92d163deb2440b927315c69e0c4d51ca290\n"
    },
    {
      "commit": "a147b4f91143d9f2fb608e22f9fca14bbd029573",
      "tree": "e8a2933109c5955906b7e5f1e61ca1a0093c5633",
      "parents": [
        "c416becd966945fca5fa7fb45ac51f84d1d8cd20"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 01 21:36:51 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Oct 02 09:13:13 2014 -0700"
      },
      "message": "mediarecorder: set level if setting default profile\n\nBug: 17676461\nChange-Id: If01ccd09935945d330de0842be95c3544951b6b9\n"
    },
    {
      "commit": "c416becd966945fca5fa7fb45ac51f84d1d8cd20",
      "tree": "a6c4443573c5dd88f2ecbcf3c84f90d58b689dba",
      "parents": [
        "f916667a017a5a6763afc4808344778570312d5a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 01 21:30:20 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 01 21:39:03 2014 -0700"
      },
      "message": "stagefright: move math templates into AUtils.h\n\nadd unit test for math templates\n\nBug: 17676461\nChange-Id: Ie964c5fcfcca1ec53b4538f8e577392e8fbb4319\n"
    },
    {
      "commit": "d0b9efe7d8300e48f7a99c1dd746d60060206b3c",
      "tree": "ff063a11d672bb71bbced27740eeac82216ed054",
      "parents": [
        "3af67d03bbc30c368821caf8b74ae7fb91ee7db7",
        "2965f4eb7dceaf1173f0e2d93c11c28293aeead7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 01 21:37:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 01 21:37:11 2014 +0000"
      },
      "message": "Merge \"add AAC audio decoder params for PCM limiter enable\" into lmp-dev"
    },
    {
      "commit": "360d6d0924f99b82ebacb5cfb6f7bca95e11b4ee",
      "tree": "1373f20ae467045842a9d206729ace2700f52bd0",
      "parents": [
        "992626cfe4852f1a2b46ea226b19c2eaa5dcfb89"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Sep 29 14:42:35 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Oct 01 10:58:30 2014 -0700"
      },
      "message": "GenericSource: support disconnect before NuCachedSource2 is created\n\nBug: 17672488\nChange-Id: I96776c9679fdcfbe9a442c86447c59802b1465ac\n"
    },
    {
      "commit": "2965f4eb7dceaf1173f0e2d93c11c28293aeead7",
      "tree": "7e69324afe5b3b2713b1f5c10bc3d71468197131",
      "parents": [
        "80ec934ae7d4e3a78af87554fdb77a58f6386ba0"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 30 22:02:34 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Oct 01 10:43:12 2014 -0700"
      },
      "message": "add AAC audio decoder params for PCM limiter enable\n\nBug: 17470065\nChange-Id: Ib67aa1c50e3b6c24c4b12b0f31a996cc6874abd1\n"
    },
    {
      "commit": "ab76066c11e988ca3d3a5d6d74dd510ae080322e",
      "tree": "deb4cccdb021f1e7aa0dd147f187a96b51b43d4c",
      "parents": [
        "9f8551ffa967bd8a4d0a52487a183dcf8b22d91f"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Mon Sep 22 19:34:31 2014 -0700"
      },
      "committer": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Sun Sep 28 15:33:34 2014 -0700"
      },
      "message": "stagefright: do not allocate output buffers for tunneled playback\n\nDo not allocate native window buffers for tunneled video playback codecs.\n\nBug: 17112525\nChange-Id: I262d8030a9df6188938fde5d62ebce8faf7dba1f\n"
    },
    {
      "commit": "bb6c9a05840d924b502ce0f1868fca4881ada1ed",
      "tree": "aec6d28b7ab31fec27416c6e853c94c2eedfcd9b",
      "parents": [
        "a935c76f96b066941b34f81c42b3fe9d00db98c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 14:11:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 16:44:07 2014 -0700"
      },
      "message": "audio: fix stream type for accessibility usage\n\nMake sure that accessibility prompts are heard when\na ringtone is active by forcing stream type\nto AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE.\n\nBug: 17558149.\nChange-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628\n"
    },
    {
      "commit": "d7f77cd78f5180ba7a04b270d632cc4f9f11718a",
      "tree": "b7110dfa83901fc8da23bda42b35c3205a75114c",
      "parents": [
        "0079b331227fc1555d7c5305f33917a570d44890",
        "dc9f58dc23a86d0635fd8601d1cbc8d47bab0303"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 22 19:01:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 22 19:01:38 2014 +0000"
      },
      "message": "Merge \"MediaCodec: Fix deallocated pointer reference when calling reset()\" into lmp-dev"
    },
    {
      "commit": "dc9f58dc23a86d0635fd8601d1cbc8d47bab0303",
      "tree": "2ee7470116618537ff6a11e06c6d87421ed24509",
      "parents": [
        "2973994af39d55b58728df3dca067594e826ea2a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 18 14:45:57 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 22 10:23:31 2014 -0700"
      },
      "message": "MediaCodec: Fix deallocated pointer reference when calling reset()\n\nThe name pointer argument in MediaCodec::init() was being\nimplicitly deallocated.\n\nBug: 17499622\nChange-Id: If9409f95674e52d1478f969f77693c4d27ff1ff2\n"
    },
    {
      "commit": "0079b331227fc1555d7c5305f33917a570d44890",
      "tree": "9426b791e1d7e14ee3cba19ab38f09d7da7ade83",
      "parents": [
        "39e07162be0680fd30bec7be50628883aa912ffd",
        "96e92b58b7e9647b4c7c2f54b62a1b357ab06b66"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Sep 22 16:03:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 22 16:03:03 2014 +0000"
      },
      "message": "Merge \"MediaBuffer: ABuffer will release MediaBuffer when it\u0027s destructed.\" into lmp-dev"
    },
    {
      "commit": "96e92b58b7e9647b4c7c2f54b62a1b357ab06b66",
      "tree": "35b83c45383cf9753b2f48eea71e66d5331165dc",
      "parents": [
        "086c1e3f41a92aa0025a1da1db5dabbfdffaf129"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 18 17:36:20 2014 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Sep 19 19:20:58 2014 -0700"
      },
      "message": "MediaBuffer: ABuffer will release MediaBuffer when it\u0027s destructed.\n\nBug: 17454455\nChange-Id: Ia423bcc2e1fa39137f114eac44912ed15357bb99\n"
    },
    {
      "commit": "6aadfce1d8c972faad7f4437dcd88d8cd3557611",
      "tree": "59e128037e1ba35eab1be1595d72621ce322476e",
      "parents": [
        "2973994af39d55b58728df3dca067594e826ea2a",
        "a0fd9ca66a68baefd9d76800fd66823fd654ef45"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 22:14:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 18 22:14:00 2014 +0000"
      },
      "message": "Merge \"AudioEffect acquires session\" into lmp-dev"
    },
    {
      "commit": "a0fd9ca66a68baefd9d76800fd66823fd654ef45",
      "tree": "c3102c24d002966b7c0038e885296d77136a47c3",
      "parents": [
        "2720c8c45a0040d7007239c100591b9f092b780f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 14:07:18 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 14:07:18 2014 -0700"
      },
      "message": "AudioEffect acquires session\n\nCurrently, users of audio sessions, AudioTrack and AudioRecord,\n are acquiring and releasing audio sessions according to their\n life-cycle. AudioEffect instances were not counting as users\n of an audio session. This caused an effect used on a session\n to be purged by AudioFlinger::purgeStaleEffects_l() whenever\n the last user of that session went away.\nThis CL makes AudioEffect acquire and release a session when\n created and destroyed.\n\nBug 15432115\n\nChange-Id: I922532150009988d43872f9b5928044a830ae0b3\n"
    },
    {
      "commit": "832666776a681ec3a30ee8fc7d5da9039646147d",
      "tree": "5db9531f473caf0e8f8cce740a997f1ad282edb2",
      "parents": [
        "a87be62b083fb969aeece99d6c29735ef9a5a373",
        "06ad1528e6dd4c866c085d3cad9235d2752eb3ed"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 17 23:15:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 17 23:16:00 2014 +0000"
      },
      "message": "Merge \"NuPlayer: use getTimestamp instead of getPosition\" into lmp-dev"
    },
    {
      "commit": "7f1bc8af1c46695191bf7e2aba6467f3616629c0",
      "tree": "905b0091037bea59f81df3cc6e49c2cfd1d7d24d",
      "parents": [
        "90869c2bef1bc47394a9f603ccebb62b2592fd2b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 12 14:43:11 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 17 23:07:05 2014 +0000"
      },
      "message": "Fix AudioTrack offloaded timestamp handling.\n\ngetTimestamp for offloaded tracks now returns WOULD_BLOCK for\nsituations where the timestamp is unavailable due to the\nprevious track still flushing or the timestamp is stale.\nIt is fixed for normal playback conditions.\n\nBug: 14659809\nBug: 17428188\nChange-Id: Ic9ec07ccabc604236979769db5c4ea2dec252660"
    },
    {
      "commit": "06ad1528e6dd4c866c085d3cad9235d2752eb3ed",
      "tree": "4b8411a9c418927b3916d5b5381cc8738a3ccb31",
      "parents": [
        "919b93473ebbba036f3934e92039f038c7f91a54"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 28 07:27:44 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 17 23:01:24 2014 +0000"
      },
      "message": "NuPlayer: use getTimestamp instead of getPosition\n\nBug: 14659809\nBug: 16985287\nChange-Id: I59ec72fbd40a9b8d28fe548ddad082c03000c045"
    },
    {
      "commit": "200092b7f21d2b98f30b800e79d152636f9ba225",
      "tree": "35ced5107a366d0885a6a54e5473891e5ce01317",
      "parents": [
        "4953f92be5c45d7b79448e8964ecbdc39eacb782"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 15 15:13:30 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 11 09:54:52 2014 -0700"
      },
      "message": "Clean up AudioTrack position and timestamp handling\n\nReplace epoch concept by observing and accumulating server delta\npositions.  The advantage of using server deltas instead of absolute\nvalues is that they (1) are not sensitive to 32-bit wraparound,\n(2) are not sensitive to server behavior for stop(), and\n(3) prepare for future 64-bit client positions without requiring 64-bit\npositions on server.\n\nAdd comments to AudioTrack::getTimestamp() and friends\nthat the timestamp output parameter is undefined on error.\n\nDon\u0027t allow getTimestamp to return a negative frame position after stop().\n\nAccumulate the client released frames, which may be useful for a future API.\n\nBug: 11815245\nChange-Id: I652940fa2db2f34a78c012a3ead0d9204fa29c6e\n"
    },
    {
      "commit": "7ea429295a2eb31f2d9256c36c1ef53a195456ac",
      "tree": "b6c7d9d6050093b199d25e579d1407dca4ccc9e5",
      "parents": [
        "83ee5564965408307e6f045ce5faed72bc3437b0"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 27 09:02:47 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 10 00:06:45 2014 -0700"
      },
      "message": "stagefright: don\u0027t use AAtomizer in AMessage\n\nBug: 15094301\nChange-Id: Ib82fb6d8fb6b48402d81f411123b3d924368eb93\n"
    },
    {
      "commit": "83ee5564965408307e6f045ce5faed72bc3437b0",
      "tree": "a06226084e4bf874ec9b361ff058e6488e44b93e",
      "parents": [
        "c99d333f59b5559248a5bf3135b7ef85b5f40133",
        "9520aa609c505cf8a9ee105bd78dc186cfb7770b"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Sep 10 05:12:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 10 05:12:18 2014 +0000"
      },
      "message": "Merge \"CamcorderProfile: Add QUALITY_HIGH_SPEED_2160P\" into lmp-dev"
    },
    {
      "commit": "9caf1f5677edb365c20739612cba9f59291a9afb",
      "tree": "c0e84b0ac44d03f63b5b74f961df819980876e92",
      "parents": [
        "8716e3f386f37abd3d759404ca8b3deaf46afde8",
        "0671947255321526cb1ba1ec3a20af9e8579c257"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Sep 09 23:56:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 09 23:56:05 2014 +0000"
      },
      "message": "Merge \"Add error code for insufficient output protection\" into lmp-dev"
    },
    {
      "commit": "9520aa609c505cf8a9ee105bd78dc186cfb7770b",
      "tree": "d6027b7564032ed9f307fc758b4ca49bc997674e",
      "parents": [
        "8270e1d13a101fa946848871b9903b31ff11981f"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Sep 09 16:18:31 2014 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Sep 09 16:18:31 2014 -0700"
      },
      "message": "CamcorderProfile: Add QUALITY_HIGH_SPEED_2160P\n\nBug: 17059255\nChange-Id: Ic6b272e4ceec8fc852c9eb787370f4d366dad0ac\n"
    },
    {
      "commit": "640adb3cf89cc9b826372009fad8c9b3d120482e",
      "tree": "e51644f1d307b920cf35e364c7d7562a604ef9a5",
      "parents": [
        "f2a2d0d6731174f5ce2a7b9d6dfd96dd7f1727a4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 05 11:20:11 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 05 11:58:39 2014 -0700"
      },
      "message": "Cache audio attributes when player not available\n\nCache the audio attributes stored in a Parcel in the client-side\n MediaPlayer object if they are set through setParameter()\n before the server-side MediaPlayer is available. Apply them when\n the player is prepared.\n\nBug 17280746\n\nChange-Id: I72f1a7fc4e2b076fae8cbdede77a2f74e98b2a03\n"
    },
    {
      "commit": "d71233a846aca7035a851941c1530d04c6a65086",
      "tree": "a1f528af0c52fd0d78a1843743f2930a2684f2b2",
      "parents": [
        "acdae5d7865b604acaadd3be1c45c84ca4bf3952",
        "34581f44cde67960fbac3ba1f191a2c063ea5145"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 03 19:09:43 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 19:09:43 2014 +0000"
      },
      "message": "Merge \"Use CharacterEncodingDetector in metadataretriever\" into lmp-dev"
    },
    {
      "commit": "ea8462ccd1a882f2c7c785250bcfaa2606b53cb5",
      "tree": "e5125d090918b769896b73470f53ba52b80bdf9c",
      "parents": [
        "23c8cf958b1a756d5e0c78c46eac676676be4fdd",
        "047dd13ca42ff7cea10821ef64eb09229fa3e751"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 03 15:52:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 15:52:23 2014 +0000"
      },
      "message": "Merge \"Fix more potential deadlocks in ALooperRoster\" into lmp-dev"
    },
    {
      "commit": "34581f44cde67960fbac3ba1f191a2c063ea5145",
      "tree": "9c89d859f2c9cd1c622355a767e3a7c57c658e8a",
      "parents": [
        "9dd4a2ddd7caf8cbe50d8a76e0ec3e0274d2bce6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 29 16:00:28 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 02 11:54:44 2014 -0700"
      },
      "message": "Use CharacterEncodingDetector in metadataretriever\n\ninstead of media scanner. This way the java MediaMetadataRetriever API\nwill give the same result as the media scanner.\nAlso apply some tweaks to the encoding detector to improve handling of\nISO-8859-1 tags.\n\nBug: 16302581, 17205395\n\nChange-Id: I1682a7a6a8bf04cffaa455044ba72dd7fd152d49\n"
    },
    {
      "commit": "97827bd7c7e64dec22c8fe0f9e734a3c432ad7ee",
      "tree": "bead699ab93f53ccd4f5575598960bc11e1491af",
      "parents": [
        "01b9256a1358110ed718c1a83c2a1808d4afbb92"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Thu Aug 28 19:08:45 2014 -0700"
      },
      "committer": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Thu Aug 28 19:08:45 2014 -0700"
      },
      "message": "Tunneled Video Playback:\nChanged AudioHwSync token to int32_t to match Audio stack api.\n\nBug: 17112525\nChange-Id: I673819495c2e7b540e8d7572cc95796bddbf63bb\n"
    },
    {
      "commit": "0671947255321526cb1ba1ec3a20af9e8579c257",
      "tree": "f40a373993228d1c018c90f581eb674aaffdaf55",
      "parents": [
        "d42173a44721af1a600b9c8599bc736394fcc724"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 28 18:00:04 2014 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 28 18:21:53 2014 -0700"
      },
      "message": "Add error code for insufficient output protection\n\nbug: 16034599\nChange-Id: Ib52c8bdae83ea138cac897bce78ab651c36c1998\n"
    },
    {
      "commit": "047dd13ca42ff7cea10821ef64eb09229fa3e751",
      "tree": "5d6a6b01170dffe63e3ecd5be195a27d4dc525a0",
      "parents": [
        "75c672fc376ef9b3ceff61a96513242b0e5ebd60"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Aug 28 10:49:08 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Aug 28 11:25:34 2014 -0700"
      },
      "message": "Fix more potential deadlocks in ALooperRoster\n\nBug: 17059501\nChange-Id: I242f2859527bed2d6e275c27de94fb19f4dcdc28\n"
    },
    {
      "commit": "d354d8d1b09503c0166c1f3e626cda72a3eeb83c",
      "tree": "bcb5370e8abc4611587dbef4066c0345a647c068",
      "parents": [
        "111333eaab12448f45927464c8aeacbbf9a578a1"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 20 13:09:58 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Aug 21 18:38:09 2014 -0700"
      },
      "message": "move cache prefill to GenericSource\u0027s message handler\n\nThis allows prepareAsync to be terminated by reset promptly.\n\nIt also makes it easier to do buffer update as GenericSource\ncan access the cache status now.\n\nBug: 16892748\nBug: 17182378\n\nChange-Id: Ia55c04a810fd805041cb2025f6739afa5120b5ed\n"
    },
    {
      "commit": "732c6d955524ead6c31e6e1bafbd41ea4cee525d",
      "tree": "512bb207b9013da6f9c728f77a3070a7a5b99638",
      "parents": [
        "261562316c1b652ea697c99c0f24a54112bd0385"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 14 19:54:08 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 14 19:56:58 2014 -0700"
      },
      "message": "stagefright/media: add support for codec features with text value\n\nBug: 11990470\nChange-Id: I7600d999c5f4b6821d825d25fa7e8a2bb5a80c46\n"
    },
    {
      "commit": "d018b8ffd84452a7a4b992b5325713b3256e48ff",
      "tree": "a338c848af9b637f9879a7f0293d0fafbfef4489",
      "parents": [
        "2461e0cf6ae3fe5c9b52ce9e3ac764f4aff5e5eb",
        "6ff58f04f78886b07c72c0118eb71a78d08f5651"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 17:05:56 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 12 16:54:46 2014 +0000"
      },
      "message": "Merge \"MediaCodecList: handle errors gracefully\" into lmp-dev"
    },
    {
      "commit": "2461e0cf6ae3fe5c9b52ce9e3ac764f4aff5e5eb",
      "tree": "449c2a4029cc6e8048b9d9d373078e5830bd9404",
      "parents": [
        "e7a1737c92cf2e84754ffbc52cfec8edeffcbc75"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 08:55:25 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 16:30:40 2014 +0000"
      },
      "message": "MediaCodecList: don\u0027t return references\n\nBug: 16905025\nChange-Id: I5b42b294f0cc785b8e4dda0e82c8f8377a46f487"
    },
    {
      "commit": "6ff58f04f78886b07c72c0118eb71a78d08f5651",
      "tree": "99652bd3f5349e5cd8c55c261e7e06b65fc06ea1",
      "parents": [
        "e7a1737c92cf2e84754ffbc52cfec8edeffcbc75"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Aug 11 16:46:15 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 09:29:29 2014 -0700"
      },
      "message": "MediaCodecList: handle errors gracefully\n\nHandle missing OMX codecs, and codecs that do not load.\nFix NULL dereference when initializing codec with no type.\n\nBug: 16907578\nBug: 16905025\nChange-Id: I5d103db36ebb029d1aab03222bf6e9324beb1566\n"
    },
    {
      "commit": "306c92dabc524f408445f7da2524c7a5e77ade63",
      "tree": "3e7b9269223865424df13a4efc513ecfe57af69c",
      "parents": [
        "de975ca87c3dbdf9b7d92dae54b3446670b2a50e",
        "cd04484f4837b8ca0041d118286ab6a98e84fc75"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 11 20:26:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 11 18:20:32 2014 +0000"
      },
      "message": "Merge \"Extend downsampling ratios greater than 2:1\" into lmp-dev"
    },
    {
      "commit": "cd04484f4837b8ca0041d118286ab6a98e84fc75",
      "tree": "4b9e501bb71969c0ca5049201aeae42284ac9b80",
      "parents": [
        "53a1e46e559b00653eadf6f4bb5572679b0ee734"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 07 11:04:34 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 11 10:17:18 2014 -0700"
      },
      "message": "Extend downsampling ratios greater than 2:1\n\nAlso improve robustness to choice of sampling rate or buffer size\nsuch that increasing either by 10x does not cause overflow.\n\nBug: 12979141\nBug: 15933066\nChange-Id: If7989bd745d1bee3bdf811b8b7c978543ccafb65\n"
    },
    {
      "commit": "e079c76c5c29d6cca85d9debc470358588721618",
      "tree": "670b27f35b504199cdcaa1473619128a314c9ad9",
      "parents": [
        "53a1e46e559b00653eadf6f4bb5572679b0ee734",
        "5a446aafff3020d607ad6fb14cc7ae76dd8f7947"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Sat Aug 09 04:56:42 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 09 00:45:27 2014 +0000"
      },
      "message": "Merge \"Added Tunneled video playback support to ACodec\" into lmp-dev"
    },
    {
      "commit": "5a446aafff3020d607ad6fb14cc7ae76dd8f7947",
      "tree": "4b805d80181d7b0c8c61b4907c0f5e15a3bc3230",
      "parents": [
        "48449403a1946653074591829e8c39c8000918d1"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Tue Jul 29 16:47:56 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Aug 08 18:24:15 2014 -0700"
      },
      "message": "Added Tunneled video playback support to ACodec\n\nBug:16132368\nChange-Id: I88d2d66b8548fc203f4a2c4797196af15e56ff38\n"
    },
    {
      "commit": "7c4f0d757bfeedaab4b7ef4ccf5b0a72ec8f4306",
      "tree": "2955488eabae107a5ea3eb510aa867d05c2570f7",
      "parents": [
        "a912c194ded6c9ece78c492c68c3763f284bb5d5"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 09 18:53:31 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Aug 08 18:32:22 2014 -0700"
      },
      "message": "NuPlayer: getSelectedTrack\n\nChange-Id: If5251f89b881e7f268e11a06cd3685d794c958b6\n"
    },
    {
      "commit": "ddabe554e95940891c5df9a7f092798351b5f75e",
      "tree": "5e58b35801c040a48b95c071a454a1b8bb35d7ee",
      "parents": [
        "15ff76c99482eab01934cf0f55c815a85cf06f35",
        "8045853d03649f43ea2f7107e7d2dbb9b2d20855"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Aug 08 21:05:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 08 16:09:03 2014 +0000"
      },
      "message": "Merge \"AAC decoder: add support for controlling presentation parameters\" into lmp-dev"
    },
    {
      "commit": "8045853d03649f43ea2f7107e7d2dbb9b2d20855",
      "tree": "e11dfa27febf887acc5cc31c5e975ba74f72da11",
      "parents": [
        "b97cc6a9a3c81215e365c61b071a932073b56ff2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Aug 01 22:17:48 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Aug 08 11:03:32 2014 -0700"
      },
      "message": "AAC decoder: add support for controlling presentation parameters\n\nControl the dowmixing of the AAC decoder\nControl the DRC processing of the AAC decoder\n\nBug 16740915\n\nChange-Id: I9b06ea8785f56213ea120ed85eeb360c88223297\n"
    },
    {
      "commit": "317bb9163befccd87348c11bdfc0044e629b362b",
      "tree": "ae1fc56615f47aa115cf8235ddfb02d444bbf3d2",
      "parents": [
        "1198a3394a21d3c31b19395b124c77f09a8f0924",
        "251d4be8aa5ab80bc915a82a2420233bdc62018e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 08 16:12:22 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 07 17:50:16 2014 +0000"
      },
      "message": "Merge \"Clarify and implement MediaCodec status codes\" into lmp-dev"
    },
    {
      "commit": "251d4be8aa5ab80bc915a82a2420233bdc62018e",
      "tree": "c158da7f2cd30e99ab93a8046b2cdd1d4ba50c91",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 30 15:46:04 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 07 12:24:31 2014 -0700"
      },
      "message": "Clarify and implement MediaCodec status codes\n\nClarify MediaCodec status codes in MediaError.h\nWhen appropriate, return OMX error codes for status.\nOptionally return a status code from CreateByType() and\nCreateByComponentName().\n\nBug: 12034929\nBug: 13976475\nChange-Id: I7463dd08d101074f730481b26127a69c9186c97e\n"
    },
    {
      "commit": "229d242665c612fd97431d1e7ac004823b47f181",
      "tree": "956d290a0474e80a9d58572f8e5b92ad373558b1",
      "parents": [
        "1381d4b5c0385aec3741073e5998773b064c1fb0"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 14:16:23 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 17:49:38 2014 -0700"
      },
      "message": "stagefright: support flexible YUV format\n\n- Report flexible format for standard OMX formats that are flexible.\n- Accept flexible format when specifying video port formats.\n\nBug: 10706245\nChange-Id: I9e82bc895bb0d5d606eb05fdf83bec766eaa2046\n"
    },
    {
      "commit": "1381d4b5c0385aec3741073e5998773b064c1fb0",
      "tree": "6087b737255d34703a90d1952d48bb97646e492a",
      "parents": [
        "60b1c0e79d12a1c70758bc8d060156924635f8ba"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 15:18:35 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 17:40:13 2014 -0700"
      },
      "message": "media/playerservice: add getCodecList() to MediaPlayerService\n\nBug: 11990470\nChange-Id: I8fa45946fd9b76f9b975fc59062819c57e6881ef\n"
    },
    {
      "commit": "60b1c0e79d12a1c70758bc8d060156924635f8ba",
      "tree": "300d26ea36bca500a7105b7a94497dd1c2aa9fda",
      "parents": [
        "8accee4f0e94f19866d260be6eecd6c219eb4982"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 06 16:55:46 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 17:40:13 2014 -0700"
      },
      "message": "stagefright: rework media codec list and infos\n\nThis is in preparation of serving the codec list and codec infos\nfrom the mediaserver\n\nBug: 11990470\nChange-Id: Ib8e2708679c9ce461a4ba179974a740cdcdf2731\n"
    },
    {
      "commit": "8accee4f0e94f19866d260be6eecd6c219eb4982",
      "tree": "99ef44526b372dc6020f995cd78f3b9e3b1ffe58",
      "parents": [
        "3659445a8b71afba9927b9d0d8ac41782278bde5"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 06 11:32:00 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 14:23:27 2014 -0700"
      },
      "message": "stagefright: add AString parceling, and equal/compareIgnoreCase\n\nBug: 11990470\nChange-Id: If43ada5d2e768931f4409e499eaa268edade0500\n"
    }
  ],
  "next": "a9522673f3076ea937eb2912945d7ed646ca05df"
}
