)]}'
{
  "log": [
    {
      "commit": "448c6ca48144b324ca1e98962bd5dd06451a355e",
      "tree": "260fa0fc5a5f31ed869b535f1bd22d52077084c7",
      "parents": [
        "2fd0ba8e9529780fd87b71a024edb3200ad1d93a",
        "ea236f19e652942a7af384566c70cdd0c7f88c58"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 23 03:52:12 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 23 03:52:12 2013 -0700"
      },
      "message": "am ea236f19: Merge \"Identify in logs launch of voice search from key events\" into jb-mr2-dev\n\n* commit \u0027ea236f19e652942a7af384566c70cdd0c7f88c58\u0027:\n  Identify in logs launch of voice search from key events\n"
    },
    {
      "commit": "cb315af34be49859a0bfda6ee808550671a5e416",
      "tree": "31edfc9bc345c6bae7bf4a8f33381ae496f7cac2",
      "parents": [
        "8c3cb8111a5aff8a3f71942dda3020dbec285e27",
        "fb0b6a817903b42dfc192dc8fa71f5dede024379"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 23 03:51:42 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 23 03:51:42 2013 -0700"
      },
      "message": "am fb0b6a81: Merge \"Opt-in mechanism for RemoteControlClient position anti-drift check\" into jb-mr2-dev\n\n* commit \u0027fb0b6a817903b42dfc192dc8fa71f5dede024379\u0027:\n  Opt-in mechanism for RemoteControlClient position anti-drift check\n"
    },
    {
      "commit": "ea236f19e652942a7af384566c70cdd0c7f88c58",
      "tree": "98cd6cdd13f99bb6788f45fa6372abfc9de2f077",
      "parents": [
        "f78ff07f6e688d11881658f743ef63076fcc550c",
        "924f1b962c3a8e700a695cb65cb07c17cf90c696"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 23 01:30:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 23 01:30:30 2013 +0000"
      },
      "message": "Merge \"Identify in logs launch of voice search from key events\" into jb-mr2-dev"
    },
    {
      "commit": "fb0b6a817903b42dfc192dc8fa71f5dede024379",
      "tree": "f7cdf068c7c99c9f20144ff63c60450ead6a8792",
      "parents": [
        "a4629b0b833f78481ca51baa44b0303ebe647a7c",
        "c3c4babf8424f65b3d3d2700f60fae6e94e9cd00"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 22 23:41:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 22 23:41:04 2013 +0000"
      },
      "message": "Merge \"Opt-in mechanism for RemoteControlClient position anti-drift check\" into jb-mr2-dev"
    },
    {
      "commit": "c3c4babf8424f65b3d3d2700f60fae6e94e9cd00",
      "tree": "3ca5081d905ed641559bad259d5155931535e4e3",
      "parents": [
        "9b3ebb124eba3d9f80ae299e0cbcfcd9c0a8653d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 19 08:56:50 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 22 14:15:34 2013 -0700"
      },
      "message": "Opt-in mechanism for RemoteControlClient position anti-drift check\n\nRemoteControlClient has an interface for the framework to query\n the playback position. This mechanism is used to detect\n when the estimated position drifts from the real position by\n having the framework regularly poll (every 15s when playing at\n 1x) this interface and compare against the estimation.\nBut this mechanism:\n - should only be used when IRemoteControlDisplay implementation\n  care about position display\n - should not be used by default because the implementation of\n  the position query interface might involve network traffic\n  in some remote media player implementation for instance.\n\nThis CL implements an opt-in mechanism to be used by\n implementators of IRemoteControlDisplay, to request the\n anti-drift mechanism to be turned on.\n\nbug 8120740\n\nChange-Id: I1baa3e515546ac41e0ac9c3a41bfa3147ecf3d7f\n"
    },
    {
      "commit": "0f70770be83b02c36262ad7e05ac5b2040de3fec",
      "tree": "2c7eca3274b570f384a9ef20650656b72e5e3f46",
      "parents": [
        "353bd75bbab5904cc872364586acf7eb05b4e264",
        "b5ec8c145d467abbc6eaf3306a5f6725e348ceec"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Apr 20 21:34:52 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 20 21:34:52 2013 -0700"
      },
      "message": "am b5ec8c14: Change doc comment to match API change\n\n* commit \u0027b5ec8c145d467abbc6eaf3306a5f6725e348ceec\u0027:\n  Change doc comment to match API change\n"
    },
    {
      "commit": "b5ec8c145d467abbc6eaf3306a5f6725e348ceec",
      "tree": "0280fa94ee2da1fe53bd5f0ba4eef5270dd99239",
      "parents": [
        "18414c4db7a2cd7d7b872e4cd4583bc8b7a4fcc0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 19 15:35:54 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 19 16:57:09 2013 -0700"
      },
      "message": "Change doc comment to match API change\n\nAPI change in f0d4777473f25847d67fc17fc082fada08cf678d didn\u0027t update a\ncomment to match which caused doc build failures.\n\nBug: 8603279\nChange-Id: I475dc569747ae5d34b4267537370f18446386bb9\n"
    },
    {
      "commit": "924f1b962c3a8e700a695cb65cb07c17cf90c696",
      "tree": "0542b210c4ba31b0bcc525ce5401603e352a5cc1",
      "parents": [
        "9b3ebb124eba3d9f80ae299e0cbcfcd9c0a8653d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 19 16:25:35 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 19 16:25:35 2013 -0700"
      },
      "message": "Identify in logs launch of voice search from key events\n\nClearly identify in the logs when AudioService starts one of\n the following two intents in response to long-press on\n the KEYCODE_HEADSETHOOK key: ACTION_WEB_SEARCH and\n ACTION_VOICE_SEARCH_HANDS_FREE.\n\nBug 8095981\n\nChange-Id: I14ca99533dfb011cdc530c0bafd8104ff2436c7d\n"
    },
    {
      "commit": "408e663712b7f807ff1a0859c636e2dc4f53422c",
      "tree": "136867f38e996686836d02686c7b576908c469ae",
      "parents": [
        "1b50e4ead5463f4dcc03f9c5ed64963af0d4d9eb",
        "26a54ecaa556f72086790caa133e5a8d31652d8a"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 19 13:35:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 19 13:35:40 2013 -0700"
      },
      "message": "am 26a54eca: Merge \"Correct algorithm property name and clarify javadoc description of device unique id property.\" into jb-mr2-dev\n\n* commit \u002726a54ecaa556f72086790caa133e5a8d31652d8a\u0027:\n  Correct algorithm property name and clarify javadoc description of device unique id property.\n"
    },
    {
      "commit": "f0d4777473f25847d67fc17fc082fada08cf678d",
      "tree": "9cd0f0ff465498e01fe0df84d6cd5995fe6a1e9d",
      "parents": [
        "9b3ebb124eba3d9f80ae299e0cbcfcd9c0a8653d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 19 10:04:17 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 19 10:04:17 2013 -0700"
      },
      "message": "Correct algorithm property name and clarify javadoc description of\ndevice unique id property.\n\nbug: 8603279\nChange-Id: If56d568072b3c09e5f63901e285d0eaa3c77ff7a\n"
    },
    {
      "commit": "0068e00ddc625280ea230ca3fb819e901595c03d",
      "tree": "e5cbc4e5963bf5fa5e809761dcf162c8a0bfea2e",
      "parents": [
        "747847fa128ebda5aab1afe15f64a2997cbb0cce",
        "91695a0cdc0aaab3d3f939d9adb8855938b4f69d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 19 08:57:43 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 19 08:57:43 2013 -0700"
      },
      "message": "am 91695a0c: Merge \"Anti-drift in RCC playback position\" into jb-mr2-dev\n\n* commit \u002791695a0cdc0aaab3d3f939d9adb8855938b4f69d\u0027:\n  Anti-drift in RCC playback position\n"
    },
    {
      "commit": "91695a0cdc0aaab3d3f939d9adb8855938b4f69d",
      "tree": "15d7ed14727af749c8fdc93be495be0190108926",
      "parents": [
        "56af4f212a21fe08b54de10322e023b09fa125aa",
        "521e68e76cfdcf297d0de056032dc142d4939fa0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 19 15:55:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 15:55:29 2013 +0000"
      },
      "message": "Merge \"Anti-drift in RCC playback position\" into jb-mr2-dev"
    },
    {
      "commit": "747847fa128ebda5aab1afe15f64a2997cbb0cce",
      "tree": "bd7a4e3fe5baecafe6706e7d848297711d7b823a",
      "parents": [
        "dbc26a867d0a90319b0b016f9d658d9e754d6cb2",
        "56af4f212a21fe08b54de10322e023b09fa125aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 19 08:42:42 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 19 08:42:42 2013 -0700"
      },
      "message": "am 56af4f21: Merge \"AudioService: SCO audio backward compatibility\" into jb-mr2-dev\n\n* commit \u002756af4f212a21fe08b54de10322e023b09fa125aa\u0027:\n  AudioService: SCO audio backward compatibility\n"
    },
    {
      "commit": "56af4f212a21fe08b54de10322e023b09fa125aa",
      "tree": "b5b8ba39fa5f0b87e04462b2ceb68756d10d2e5b",
      "parents": [
        "6ead6ccac9727993559c9f09f1e8da3c69ee3313",
        "c18c9138cee0f0859bcab636a004ce92ca4a9ab5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 19 15:39:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 15:39:22 2013 +0000"
      },
      "message": "Merge \"AudioService: SCO audio backward compatibility\" into jb-mr2-dev"
    },
    {
      "commit": "dbc26a867d0a90319b0b016f9d658d9e754d6cb2",
      "tree": "5493df727f0b4831f580ceac8db93ddbbbcaf1b7",
      "parents": [
        "9454a9b3037dfdd172e08d621a23df182bf942b4",
        "6ead6ccac9727993559c9f09f1e8da3c69ee3313"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 19 08:37:04 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 19 08:37:04 2013 -0700"
      },
      "message": "am 6ead6cca: Merge \"Add some documentation to MediaCodecInfo\" into jb-mr2-dev\n\n* commit \u00276ead6ccac9727993559c9f09f1e8da3c69ee3313\u0027:\n  Add some documentation to MediaCodecInfo\n"
    },
    {
      "commit": "6ead6ccac9727993559c9f09f1e8da3c69ee3313",
      "tree": "db593398ef666c2872c5df056f1c88809022e9cf",
      "parents": [
        "4e0eb22fdf56b8f3fd1bff09c4064b35b80751c1",
        "ba9269a5855b6d9d581af09077caafbd45180b41"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 19 15:34:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 15:34:15 2013 +0000"
      },
      "message": "Merge \"Add some documentation to MediaCodecInfo\" into jb-mr2-dev"
    },
    {
      "commit": "521e68e76cfdcf297d0de056032dc142d4939fa0",
      "tree": "5001e4def49578dd2f972ba1cf31acebdef318d2",
      "parents": [
        "e1546df25a7de17195f5b38ca90cad8447c288d0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 16 15:28:46 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 18 18:01:49 2013 -0700"
      },
      "message": "Anti-drift in RCC playback position\n\nPeriodically verify that the reported playback position hasn\u0027t\n drifted from the estimated playback position.\nIf a drift is noticed, re-synchronize registered\n IRemoteControlDisplay implementations.\n\nbug 8120740\n\nNote that this implementation updates the playback position\n of  all IRemoteControlDisplay implementations,\n and always causes the OnGetPlaybackPositionListener to be\n called. This might be undesirable in some circumstances\n and will be addressed in a subsequent CL.\n\nChange-Id: Ib9f40e1b000e912f6c35fa03e41adf81efadc894\n"
    },
    {
      "commit": "a393c2a2f7a6a3153b82b1e43bfffa1a040d56b5",
      "tree": "ac91370e486c1c72d1715abe21d2b5c079cb1de3",
      "parents": [
        "6800dde2fcf4aeec358feb52831933089978edb0",
        "c884a08e8c450682f3fe83576fb9e89f8337146e"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Apr 18 16:23:17 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 18 16:23:17 2013 -0700"
      },
      "message": "am c884a08e: Merge \"Improve error handling for DRM errors reported by plugins\" into jb-mr2-dev\n\n* commit \u0027c884a08e8c450682f3fe83576fb9e89f8337146e\u0027:\n  Improve error handling for DRM errors reported by plugins\n"
    },
    {
      "commit": "c884a08e8c450682f3fe83576fb9e89f8337146e",
      "tree": "d4752c281cf06617ce1437dd5d49abffa6cc94ee",
      "parents": [
        "9bc3386e1dfacf6544039dc9f66d07b827632f23",
        "f7568b5ee96b3d80721c76ab3d47f1368a99bf98"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Apr 18 23:18:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 18 23:18:46 2013 +0000"
      },
      "message": "Merge \"Improve error handling for DRM errors reported by plugins\" into jb-mr2-dev"
    },
    {
      "commit": "ba9269a5855b6d9d581af09077caafbd45180b41",
      "tree": "d8f4005dddebdea61c7eb5f782a030d2ddf7059a",
      "parents": [
        "7f6fc12997d67ae80a044bc0b4cc17797d887911"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 18 15:27:20 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 18 15:27:20 2013 -0700"
      },
      "message": "Add some documentation to MediaCodecInfo\n\nChange-Id: Ia94cde04af37e46b5d4b9c171dc50112134042b8\nrelated-to-bug: 8657165\n"
    },
    {
      "commit": "4efe71ae55db09a4e3d727175df97d5bcda0449c",
      "tree": "5a89800b7d2d57657b17fb4f3a4156a942884d4c",
      "parents": [
        "53b6d5106dc65a12f24aa5f90dc87dd5a749d54c",
        "45d59a997f639662e4ce427933d81667fee39bcd"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Apr 18 09:11:57 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 18 09:11:57 2013 -0700"
      },
      "message": "am 45d59a99: Merge \"Make MediaDrm APIs public\" into jb-mr2-dev\n\n* commit \u002745d59a997f639662e4ce427933d81667fee39bcd\u0027:\n  Make MediaDrm APIs public\n"
    },
    {
      "commit": "45d59a997f639662e4ce427933d81667fee39bcd",
      "tree": "c3cc6d7ed8eb76540b9c23ddbd5a8ae7d8a435d5",
      "parents": [
        "2b29631953d05c5202483817f5d2b07a26ddc14c",
        "e1c76bebef41d362369627ed0c06ea9a01c6bddb"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Apr 18 16:08:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 18 16:08:37 2013 +0000"
      },
      "message": "Merge \"Make MediaDrm APIs public\" into jb-mr2-dev"
    },
    {
      "commit": "c18c9138cee0f0859bcab636a004ce92ca4a9ab5",
      "tree": "a6a77098b0a4bc577c0a6d9c17c219353bf6a62a",
      "parents": [
        "a0042742c8941519718cc8872a84cfec10294386"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 12 17:24:56 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 17 17:19:56 2013 -0700"
      },
      "message": "AudioService: SCO audio backward compatibility\n\nAfter commit 25fc29b3, AudioManager.startBluetoothSco()\ndoes not use virtual voice call mode anymore when starting the\nSCO audio connection to the headset.\nTo help backward compatibility, this change makes that virtual voice call\nis used if the request comes from an application targeting a SDK version\nbefore JB MR2. For applications targeted to JB MR2 and above a raw SCO\naudio connection is established.\n\nBug 8157702\n\nChange-Id: If1ded2fd99b7ed76d2435d95ee03659e78a7882a\n"
    },
    {
      "commit": "f7568b5ee96b3d80721c76ab3d47f1368a99bf98",
      "tree": "1bd4122ea66af5efe05aa5cff81cd5e3f7339952",
      "parents": [
        "e1c76bebef41d362369627ed0c06ea9a01c6bddb"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 17 14:24:40 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 17 16:46:49 2013 -0700"
      },
      "message": "Improve error handling for DRM errors reported by plugins\n\nChange-Id: I25df78f16379b32c54189949daa3ab9c91187375\nrelated-to-bug: 8621516\n"
    },
    {
      "commit": "e1c76bebef41d362369627ed0c06ea9a01c6bddb",
      "tree": "1abddd54e4c601f30cc23272ce9d719afe7df55b",
      "parents": [
        "2570d0ada876b94a91f9665c7469140ba0ddc712"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 03 18:11:33 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 17 15:24:48 2013 -0700"
      },
      "message": "Make MediaDrm APIs public\n\nbug: 8603279\n\nChange-Id: I9fab2673867ad413a084933cee7239d13e8b7893\n"
    },
    {
      "commit": "aa4e246271fa837c373b71fbaa671f0cbc336eca",
      "tree": "3eb4aebbf3f6923da4b67970c89f5015cc7c9f6d",
      "parents": [
        "f4865efe603e795bc037f5df468556140165eea2",
        "e1546df25a7de17195f5b38ca90cad8447c288d0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 17 14:15:36 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 17 14:15:36 2013 -0700"
      },
      "message": "am e1546df2: Merge \"Fix message handling in RemoteControlClient\" into jb-mr2-dev\n\n* commit \u0027e1546df25a7de17195f5b38ca90cad8447c288d0\u0027:\n  Fix message handling in RemoteControlClient\n"
    },
    {
      "commit": "05e7c2ff8cd6b6386d8c553995c2d12075833e4a",
      "tree": "328c730382543c40664972c8d27ca8df72e34d5b",
      "parents": [
        "5584737fff6350ab09fb53e6a73bbff770930727"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 16 15:31:17 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 16 16:14:38 2013 -0700"
      },
      "message": "Fix message handling in RemoteControlClient\n\nInternal message must go through the message queue, not be\n  dispatched immediately.\nMissing \u0027break\u0027 when handling MSG_SEEK_TO message.\n  This was spamming the log with fake error messages.\n\nBug 8120740\n\nChange-Id: Ib53ec05ef33133637e587eb1b24dac9ea32a5680\n"
    },
    {
      "commit": "29b5e1701bdf06861d0eae4a3be05a7012c5e1c6",
      "tree": "2b1423dc5bb0c6ae26c04efa9eb25f2e97941d71",
      "parents": [
        "29638ab758ec5274b3fbf4974149d1cd05a00bd6",
        "7fa9667f63fe84a2d17ce899121f32bfcec98864"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 15 13:13:39 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 15 13:13:39 2013 -0700"
      },
      "message": "am 7fa9667f: Merge \"Clarify how release of offline keys is handled in the MediaDrm API\" into jb-mr2-dev\n\n* commit \u00277fa9667f63fe84a2d17ce899121f32bfcec98864\u0027:\n  Clarify how release of offline keys is handled in the MediaDrm API\n"
    },
    {
      "commit": "7fa9667f63fe84a2d17ce899121f32bfcec98864",
      "tree": "c73150d03ed97ef7d9cfaee1d8c2b2469715b0ef",
      "parents": [
        "e47539684e1431a69893e45bcf9ace4f812edbc8",
        "d8bbfc2750fa24a0374dd3525d2759692e6b9285"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 15 20:11:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 15 20:11:18 2013 +0000"
      },
      "message": "Merge \"Clarify how release of offline keys is handled in the MediaDrm API\" into jb-mr2-dev"
    },
    {
      "commit": "feb5a72843ffa6df0140a8c1cfa9c42f6612e19f",
      "tree": "d090678369d0a89b9edf29f1313d3fc6b2859ddc",
      "parents": [
        "168e18d4b8fdb69a2898f538cd8cd251260a373b",
        "fb5e6bbd2bf9ad8a71fc798be3ef12b950476f43"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon Apr 15 11:15:33 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 15 11:15:33 2013 -0700"
      },
      "message": "am fb5e6bbd: Merge \"fix javadoc build\" into jb-mr2-dev\n\n* commit \u0027fb5e6bbd2bf9ad8a71fc798be3ef12b950476f43\u0027:\n  fix javadoc build\n"
    },
    {
      "commit": "e63b0609c3b5f6c21d4e006ee9ddd3ba98a4e684",
      "tree": "e209d3e5eabd72edd104065c3b28394f767059bc",
      "parents": [
        "74e56f19299cd04e2e6c6a9a19af260551750d6a"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon Apr 15 11:11:44 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon Apr 15 11:11:44 2013 -0700"
      },
      "message": "fix javadoc build\n\nChange-Id: I9b86dda5aea075832d5e165043f45c8d507b5c16\n"
    },
    {
      "commit": "42732e1037b48e9bf71e9965bc28ddb5d8242fa4",
      "tree": "621781796dbbce452a5bad242593ce24cb4aaf00",
      "parents": [
        "e41c3cdb9c4b56cb1dc48242d7910df9a16bf8b7",
        "74e56f19299cd04e2e6c6a9a19af260551750d6a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 15 10:19:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 15 10:19:24 2013 -0700"
      },
      "message": "am 74e56f19: Merge \"Public APIs for media position in RemoteControlClient\" into jb-mr2-dev\n\n* commit \u002774e56f19299cd04e2e6c6a9a19af260551750d6a\u0027:\n  Public APIs for media position in RemoteControlClient\n"
    },
    {
      "commit": "74e56f19299cd04e2e6c6a9a19af260551750d6a",
      "tree": "132b2af03bceabd0a0a2c616ddf9f344b69b88f4",
      "parents": [
        "7e157f321c690e41f0f18a556f989fd20709469f",
        "915747730060dff71b5b2ca7e4ee4073024fc24e"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 15 17:13:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 15 17:13:46 2013 +0000"
      },
      "message": "Merge \"Public APIs for media position in RemoteControlClient\" into jb-mr2-dev"
    },
    {
      "commit": "e813a85c97f542bbfc306a30ce2ae4c305133203",
      "tree": "7b6e8001343114226ed6aa01ed8faf3a7d4ab511",
      "parents": [
        "baf4a057f8d4b5a97a5b3da276b59c2cd175e4b7",
        "2de0771da2b6c07f717d62ae4e4be93702af9a43"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 08:34:37 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 15 08:34:37 2013 -0700"
      },
      "message": "am 2de0771d: Merge \"MediaExtractor.setDataSource(...) has always thrown IOExceptions from\" into jb-mr2-dev\n\n* commit \u00272de0771da2b6c07f717d62ae4e4be93702af9a43\u0027:\n  MediaExtractor.setDataSource(...) has always thrown IOExceptions from\n"
    },
    {
      "commit": "baf4a057f8d4b5a97a5b3da276b59c2cd175e4b7",
      "tree": "5f3f826165735b0509f531d2c38e84e7b3950ac4",
      "parents": [
        "c4294ed2f1de5c89b5e283942e0d5f8cd8822bfb",
        "5c5c3f3abd8a95bf46378fd93b13160ad52e74ff"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 08:34:34 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 15 08:34:34 2013 -0700"
      },
      "message": "am 5c5c3f3a: Merge \"Document that MediaPlayer.getDuration() returns an invalid value (-1)\" into jb-mr2-dev\n\n* commit \u00275c5c3f3abd8a95bf46378fd93b13160ad52e74ff\u0027:\n  Document that MediaPlayer.getDuration() returns an invalid value (-1)\n"
    },
    {
      "commit": "2de0771da2b6c07f717d62ae4e4be93702af9a43",
      "tree": "578beee51b20e27f8951b7e660b1a995b0ce432b",
      "parents": [
        "5c5c3f3abd8a95bf46378fd93b13160ad52e74ff",
        "a57da0dc5a5b863cdb12287699ba58f34529bd62"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 15:16:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 15 15:16:27 2013 +0000"
      },
      "message": "Merge \"MediaExtractor.setDataSource(...) has always thrown IOExceptions from\" into jb-mr2-dev"
    },
    {
      "commit": "915747730060dff71b5b2ca7e4ee4073024fc24e",
      "tree": "5f5d476f898d385337f9fa7ffee1b8b56c1caf42",
      "parents": [
        "b7e6a4433bda6c59540ffc51061aff5cc3d10166"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 10 18:37:43 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Apr 14 12:17:56 2013 -0700"
      },
      "message": "Public APIs for media position in RemoteControlClient\n\nNew APIs in android.media.RemoteControlClient to support application\n exposing their current media playback position and speed, and\n let the framework request position changes.\n\nBug 8120740\n\nChange-Id: Ibfc41f60e279413c26147e3276d96f28b7f506e7\n"
    },
    {
      "commit": "d8bbfc2750fa24a0374dd3525d2759692e6b9285",
      "tree": "68e136ea9b183e79f0eaaccc7e5c95f94991da14",
      "parents": [
        "eec68e55cc6661837030c8ecb4386d05b1d31685"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 12 08:54:55 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 12 09:57:43 2013 -0700"
      },
      "message": "Clarify how release of offline keys is handled in the MediaDrm API\n\nbug: 8603820\n\nChange-Id: Ifeda018fbbbb9905e62ee242da2ede1ed89868a2\n"
    },
    {
      "commit": "7cd281c332e81c93fde44d1a394b04843bebd723",
      "tree": "3378be1ee1efc93ce1bcc303eff47cad8140fe26",
      "parents": [
        "f8a67f4f5dd4c5499a6e7148331f0286e31203ec"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:07:03 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 11:09:06 2013 -0700"
      },
      "message": "Document that MediaPlayer.getDuration() returns an invalid value (-1)\n\nif no duration information was available.\n\nChange-Id: If064627cca7915f4562b6d61bfd4ceb9a3c9390c\nrelated-to-bug: 8596285\n"
    },
    {
      "commit": "a57da0dc5a5b863cdb12287699ba58f34529bd62",
      "tree": "675f046298e50891066f9a9ba5f6de6bc440a84b",
      "parents": [
        "f8a67f4f5dd4c5499a6e7148331f0286e31203ec"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 10:54:55 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 11 10:54:55 2013 -0700"
      },
      "message": "MediaExtractor.setDataSource(...) has always thrown IOExceptions from\n\nwithin jni code, but failed to document this fact. No more.\n\nChange-Id: If55980616e974637209dea2b7a28b2481b55cea4\nrelated-to-bug: 8470755\n"
    },
    {
      "commit": "66104e1e19316d2c0a7b978093e2d9166f9cbda4",
      "tree": "153f7402512c9b8590952064215e83ad1f7648be",
      "parents": [
        "af543eb050546e2197bd54db7cf257e053add4c2",
        "521eeaefcb4b78a8b571d1a1b4f095d993aea8b6"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Apr 10 16:13:01 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 10 16:13:01 2013 -0700"
      },
      "message": "am 521eeaef: Merge \"Make MediaRouter ignore remembered wifi displays when wifi display is off\" into jb-mr2-dev\n\n* commit \u0027521eeaefcb4b78a8b571d1a1b4f095d993aea8b6\u0027:\n  Make MediaRouter ignore remembered wifi displays when wifi display is off\n"
    },
    {
      "commit": "615e413a90ff5898d8c458ebc9649ca95fa9fd98",
      "tree": "d7ea345f0746cc62bbadc298272c942047cf7f9e",
      "parents": [
        "8d06cc6d871fce6d5d6b6283027d4625edd92550"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Apr 10 15:30:51 2013 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Apr 10 16:04:59 2013 -0700"
      },
      "message": "Make MediaRouter ignore remembered wifi displays when wifi display is off\n\nBug 8417329\n\nChange-Id: Ica9bf1b250be4b72ba32e63d7eb1a6ff0b727961\n"
    },
    {
      "commit": "bb15974b72618396e5f04138427b49c22bc90dea",
      "tree": "082702126b526caddd38bddf2b3f17f49641dbd3",
      "parents": [
        "8225c5b3d925324dac7703fba0fd5a0f126afed6",
        "8515256ad477721a97108745da4c86f378f50637"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 10 09:34:09 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 10 09:34:09 2013 -0700"
      },
      "message": "am 8515256a: Merge \"Handle seek requests in AudioService\" into jb-mr2-dev\n\n* commit \u00278515256ad477721a97108745da4c86f378f50637\u0027:\n  Handle seek requests in AudioService\n"
    },
    {
      "commit": "8515256ad477721a97108745da4c86f378f50637",
      "tree": "e5252089a2b136f8c7899a45beba3b53a9d2d422",
      "parents": [
        "c37b63d6e777748d17ff177b128e30504fbd6c71",
        "3fbf67e217fb489fe7318a9e43d8ae86646eb4cc"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 10 16:29:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 10 16:29:18 2013 +0000"
      },
      "message": "Merge \"Handle seek requests in AudioService\" into jb-mr2-dev"
    },
    {
      "commit": "a976bddd9cfff0be5703484009ea875dee5d2456",
      "tree": "09c8f1c2de8db6e7b9c16927b138f082883980a5",
      "parents": [
        "fd38ca2cdcaa07800058a12622896cdd9d2e2189",
        "d8b26d6c424741dd09cf70ee88fd237807aaf301"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 22:28:51 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 09 22:28:51 2013 -0700"
      },
      "message": "am d8b26d6c: Merge \"Add liblog\" into jb-mr2-dev\n\n* commit \u0027d8b26d6c424741dd09cf70ee88fd237807aaf301\u0027:\n  Add liblog\n"
    },
    {
      "commit": "d685894212e6dbeac1fda4996903c1da115d49a6",
      "tree": "c52d05c78811e79a869afbcdbe55a906e38f2fa1",
      "parents": [
        "9fa49cc3308f6af593d780581121afc3c1d7e046"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:54:12 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: I746aa8258866508c3a725d0773faf4518096548f\n"
    },
    {
      "commit": "3fbf67e217fb489fe7318a9e43d8ae86646eb4cc",
      "tree": "489da499f92437d27fcebd38a2eeb5a7c4e265d0",
      "parents": [
        "5a78b1b20d1f137f867bd1dba76377a41af1af18"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 09 11:10:18 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 09 14:37:26 2013 -0700"
      },
      "message": "Handle seek requests in AudioService\n\nAudioService handles seek requests to RemoteControlClients.\nDiscard old or unprocessed seek requests when handling a new one.\nUpdate javadoc for OnPlaybackPositionUpdateListener interface.\n\nbug 8120740\n\nChange-Id: Id17c2852b24d4b8af85e472a177484b98cfeba05\n"
    },
    {
      "commit": "d563cede5cf4ca2647dcf00775dd0ed1dd08e792",
      "tree": "abbd7a9d2b88145dc95e7ebc6bfb9da1144919de",
      "parents": [
        "b3be67ce34966dfccfccf4918ee5c93c4971a6d0",
        "c4ad3cb07ed76c5697c60285456d9c49675174d9"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 08 16:42:17 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 08 16:42:17 2013 -0700"
      },
      "message": "am c4ad3cb0: Merge \"Add support for common encryption\" into jb-mr2-dev\n\n* commit \u0027c4ad3cb07ed76c5697c60285456d9c49675174d9\u0027:\n  Add support for common encryption\n"
    },
    {
      "commit": "c4ad3cb07ed76c5697c60285456d9c49675174d9",
      "tree": "3eb0fa618bc21df3ff96f084ad4491755e8d360e",
      "parents": [
        "0eee410e473c1546af80c63ec866655a28833f33",
        "e20a6d5c479909f37af748a81a6e5a5deb7b6e2c"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 08 23:39:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 08 23:39:29 2013 +0000"
      },
      "message": "Merge \"Add support for common encryption\" into jb-mr2-dev"
    },
    {
      "commit": "e20a6d5c479909f37af748a81a6e5a5deb7b6e2c",
      "tree": "f6848a53559c800337058c0b964f3e5941f21ced",
      "parents": [
        "53de5c296a579e9012d152f8a25c08f6f6091b3b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 08 14:28:55 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 08 14:32:34 2013 -0700"
      },
      "message": "Add support for common encryption\n\nChange-Id: I2d56a6a90dff3ce1c37296934fca01b8a2ca0f89\n"
    },
    {
      "commit": "3793b92816d940b265468e9f2f071fbf35db534d",
      "tree": "64f8b29482027072a0ea50322160749817ff8ea9",
      "parents": [
        "c2fba0750df431bb44a6873f04aac2d3e8e75de3",
        "bc948101043b3c4b57eb6e0e2421494fd7c1d41e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 08 13:20:02 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 08 13:20:02 2013 -0700"
      },
      "message": "am bc948101: Merge \"Have audio service clean up new receivers in crashing processes.\" into jb-mr2-dev\n\n* commit \u0027bc948101043b3c4b57eb6e0e2421494fd7c1d41e\u0027:\n  Have audio service clean up new receivers in crashing processes.\n"
    },
    {
      "commit": "bc948101043b3c4b57eb6e0e2421494fd7c1d41e",
      "tree": "fe7015fd7fcb87df58325fe70dd59f57e3ae5185",
      "parents": [
        "8e181c56b3abc4e57f178849a8b6cef750913d5a",
        "79f7ec70ebd5758ce54fd5b6fcd60fd27457cba6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 08 20:09:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 08 20:10:37 2013 +0000"
      },
      "message": "Merge \"Have audio service clean up new receivers in crashing processes.\" into jb-mr2-dev"
    },
    {
      "commit": "79f7ec70ebd5758ce54fd5b6fcd60fd27457cba6",
      "tree": "6bc7542adfb792659a153a5000fb94a3ed6abb6a",
      "parents": [
        "bab9687e6473072d6ff4f7ea5a7b21bcfbf95744"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 04 18:50:23 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 08 13:08:37 2013 -0700"
      },
      "message": "Have audio service clean up new receivers in crashing processes.\n\nThe new media button receiver with only a pending intent (no\ncomponent name) could be left hanging if the process that\nregistered it went away.  These semantically need to be tied\nto the calling process\u0027s lifetime; we now clean them up when\nthe calling process goes away.\n\nAlso added some additional cleanup of media button receivers\nwhen packages change (updated, cleared).\n\nAnd on top of that, a new \"media\" command for doing media\nthings.  Currently lets you send media keys and monitor\nremote display data.\n\nOh and finally added a new BaseCommand base class for\nimplementing these command line utilities.\n\nChange-Id: Iba1d56f10bab1eec4a94a7bb1d1c2ae614c8bcf5\n"
    },
    {
      "commit": "34dd708a21ef49f22877c262e0fec07872624087",
      "tree": "936d801c1b7ebb8bf150bea7610f35ff3b076bc6",
      "parents": [
        "11c6b669232d48d76a07a5dccb9042f2f5e037b2",
        "50b9eb1c7375a87525d44a036337a8ba18eba55b"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 08 10:27:18 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 08 10:27:18 2013 -0700"
      },
      "message": "am 50b9eb1c: Merge \"Update the documentiation for MediaMuxer::writeSampleData()\" into jb-mr2-dev\n\n* commit \u002750b9eb1c7375a87525d44a036337a8ba18eba55b\u0027:\n  Update the documentiation for MediaMuxer::writeSampleData()\n"
    },
    {
      "commit": "50b9eb1c7375a87525d44a036337a8ba18eba55b",
      "tree": "729c4f1695a08ec0067a5516398cf03bdc9e85cb",
      "parents": [
        "26c134398422a4f4e703cdf7b87fb1cb08d542c4",
        "f7d3aae32859a52c24713dba30e4d7ef779fdfb1"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 08 17:22:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 08 17:22:29 2013 +0000"
      },
      "message": "Merge \"Update the documentiation for MediaMuxer::writeSampleData()\" into jb-mr2-dev"
    },
    {
      "commit": "1a39d1bff409e3b75be6590c4b67d428cb4e97d7",
      "tree": "1656f25b691f0b18b4b4be79144214876058953e",
      "parents": [
        "0e9fdc9c14b462b709a04356753c8c33638bee91",
        "e8d9d2b3352bdeba0a455666bda9eb64b75198f7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 05 15:29:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 05 15:29:46 2013 -0700"
      },
      "message": "am e8d9d2b3: Merge \"AudioService: do not use virtual call for bt sco\" into jb-mr2-dev\n\n* commit \u0027e8d9d2b3352bdeba0a455666bda9eb64b75198f7\u0027:\n  AudioService: do not use virtual call for bt sco\n"
    },
    {
      "commit": "e8d9d2b3352bdeba0a455666bda9eb64b75198f7",
      "tree": "9d9b0011badeb829195aac1d130c28b83bd6bbf6",
      "parents": [
        "a1ca6faceed2eb8fba81bd7e30b3a5bae82cd484",
        "25fc29b3691a1d2a84164988dc74b2e7d301868e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 05 22:14:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 22:14:13 2013 +0000"
      },
      "message": "Merge \"AudioService: do not use virtual call for bt sco\" into jb-mr2-dev"
    },
    {
      "commit": "25fc29b3691a1d2a84164988dc74b2e7d301868e",
      "tree": "fc64d9e634cdffb4581b0e1bd7f297cac058704f",
      "parents": [
        "41c076715da58990dc9b0be749bba28fc75d3b78"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 05 12:13:54 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 05 14:27:13 2013 -0700"
      },
      "message": "AudioService: do not use virtual call for bt sco\n\nDo not use startScoUsingVirtualVoiceCall() BluetoothHeadset\nAPI to connect SCO audio. This will cause headsets to act as if an incoming\ncall was received which is not what we want for voice commands.\n\nBug 8157702\n\nChange-Id: I271909d4d1f3822758740a8484e3d2d8b4f34c00\n"
    },
    {
      "commit": "90771cbaeddc33963d0f1ac1780953b864a50006",
      "tree": "7dc6cc801bbf60b47080757edf70dc59baaad56c",
      "parents": [
        "ca5ecdc2fee56037ca8565db8750d7ebafe44d51",
        "564c866bdfa0a415bfd34722767836add1517951"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 05 08:49:16 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 05 08:49:16 2013 -0700"
      },
      "message": "am 564c866b: Merge \"Fix AudioTrack.setPlaybackRate() error handling\" into jb-mr2-dev\n\n* commit \u0027564c866bdfa0a415bfd34722767836add1517951\u0027:\n  Fix AudioTrack.setPlaybackRate() error handling\n"
    },
    {
      "commit": "564c866bdfa0a415bfd34722767836add1517951",
      "tree": "a3642d4a609c7027fef1c409f7125c18fd7145f2",
      "parents": [
        "1e0f36cffd8a4399fcd12e25bddde4544992bcb2",
        "f19395db6343efdf80d064e0ba7c3b9aa4dbae75"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 05 15:45:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 15:45:15 2013 +0000"
      },
      "message": "Merge \"Fix AudioTrack.setPlaybackRate() error handling\" into jb-mr2-dev"
    },
    {
      "commit": "72e2307c6a84de5770dd1aa2943d3d609d29baf3",
      "tree": "48949cb01dbb13d7956d73e57b1d78e5096b55a8",
      "parents": [
        "1fdaace1b17ad651d1e5266bb227a26e76b91a50",
        "1e0f36cffd8a4399fcd12e25bddde4544992bcb2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Apr 04 18:23:10 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 04 18:23:10 2013 -0700"
      },
      "message": "am 1e0f36cf: Merge \"Implement async event callout from drm plugin to Java app\" into jb-mr2-dev\n\n* commit \u00271e0f36cffd8a4399fcd12e25bddde4544992bcb2\u0027:\n  Implement async event callout from drm plugin to Java app\n"
    },
    {
      "commit": "1e0f36cffd8a4399fcd12e25bddde4544992bcb2",
      "tree": "f45ba878d81b7bc05592c46ee2232ad973b4391a",
      "parents": [
        "80fdc9624e6d53a78031bf99d34e7c01d53ad66e",
        "54cfbd6dc28334119c33b6a77779bfe244c71e69"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 05 01:16:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 05 01:16:23 2013 +0000"
      },
      "message": "Merge \"Implement async event callout from drm plugin to Java app\" into jb-mr2-dev"
    },
    {
      "commit": "f19395db6343efdf80d064e0ba7c3b9aa4dbae75",
      "tree": "1cccff60b635af969b264c755695e101502720f8",
      "parents": [
        "9ce89835dae7fb2aa799b8167354d97aaf15e7be"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 03 17:09:24 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 03 17:14:14 2013 -0700"
      },
      "message": "Fix AudioTrack.setPlaybackRate() error handling\n\nCTS expects that setPlaybackRate() returns an error for a static buffer\nAudioTrack that has not yet had any data written to the buffer.\n\nBug: 8181114\nChange-Id: I17ba039368468f6ccd1eec5322018bfe420c09c8\n"
    },
    {
      "commit": "ca762beea440ec497fd8d6f6f50ac0904a2b0a05",
      "tree": "b7465fe632b4253f3b61c68088563ea11ee895b9",
      "parents": [
        "d472ad742732e4e81c33f191bcecf8567605ab86",
        "6a5702041f48f868863a0454d7df6cd64eab235d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 03 14:14:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 03 14:14:49 2013 -0700"
      },
      "message": "am 6a570204: Merge \"RemoteControlClient receives playback position change requests\" into jb-mr2-dev\n\n* commit \u00276a5702041f48f868863a0454d7df6cd64eab235d\u0027:\n  RemoteControlClient receives playback position change requests\n"
    },
    {
      "commit": "6a5702041f48f868863a0454d7df6cd64eab235d",
      "tree": "6b2748489f483465e7ff0ca859db3068418d4063",
      "parents": [
        "4d88259f625266400cd6116973d1bc152ae83f26",
        "3261b537c5fdec824575a1f6ad6d8942715e82e2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 03 21:11:12 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 21:11:12 2013 +0000"
      },
      "message": "Merge \"RemoteControlClient receives playback position change requests\" into jb-mr2-dev"
    },
    {
      "commit": "9a1ff831b755c22e26107a8f446ed02fbde5ccb5",
      "tree": "5cc63c99491d302cfb4f1584eaf70bd7f8b4de96",
      "parents": [
        "8d1a32a413530b37dd382fa53fc990d028770e9e",
        "c9a1ca3c1a9f8591b675b980c1e390be8d901b39"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 03 13:38:34 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 03 13:38:34 2013 -0700"
      },
      "message": "am c9a1ca3c: Merge \"MediaCodec: docs: Clarify that audio/mp4a-latm is plain AAC, not in LATM\"\n\n* commit \u0027c9a1ca3c1a9f8591b675b980c1e390be8d901b39\u0027:\n  MediaCodec: docs: Clarify that audio/mp4a-latm is plain AAC, not in LATM\n"
    },
    {
      "commit": "f7d3aae32859a52c24713dba30e4d7ef779fdfb1",
      "tree": "2e82dcda02372bb5df1b95f0b5a265f9512d864f",
      "parents": [
        "73882cf489b44cfd393701c0629bb2d3613857d1"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Apr 03 13:31:39 2013 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Apr 03 13:31:41 2013 -0700"
      },
      "message": "Update the documentiation for MediaMuxer::writeSampleData()\n\nChange-Id: I7a5591c7b14728c1833e6401dcd8f0272c4ee56c\n"
    },
    {
      "commit": "54cfbd6dc28334119c33b6a77779bfe244c71e69",
      "tree": "4c9147e23f6f3ba72863844b3024b852e394593a",
      "parents": [
        "16b8cffb2893c10c35788191847500004da466d1"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 02 13:14:59 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 03 12:01:59 2013 -0700"
      },
      "message": "Implement async event callout from drm plugin to Java app\n\nChange-Id: I451b7c6f766aafac39ce432a71ef5a03bffe29f1\n"
    },
    {
      "commit": "c9a1ca3c1a9f8591b675b980c1e390be8d901b39",
      "tree": "4496cc43c5220e9a4088e30df8199b517e351617",
      "parents": [
        "ddc16ef4387ca25c607348f6155771f17a049763",
        "d2aaff582ad7928291bd1ba6e7fb5f5366e8e189"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 03 16:09:15 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 16:09:16 2013 +0000"
      },
      "message": "Merge \"MediaCodec: docs: Clarify that audio/mp4a-latm is plain AAC, not in LATM\""
    },
    {
      "commit": "5c0ce512c5782eb79c7b907e2dd20aa3896dd068",
      "tree": "1bb8556b5b6f99f742de07b72ac994dffd4ce4f9",
      "parents": [
        "75e181ddfec2166026a0ce553eca2a339e21b968",
        "16b8cffb2893c10c35788191847500004da466d1"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 02 22:49:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 22:49:19 2013 +0000"
      },
      "message": "Merge \"MediaDrm API update\" into jb-mr2-dev"
    },
    {
      "commit": "c3c7b92a8128831445d2a185b0986c60d929b150",
      "tree": "75dcac82cb8b0131da36a317433d690ef86bcd87",
      "parents": [
        "c99d3c1fd618c1f64103b4f39dd95330309be5a3",
        "b839b83c7349533b4cb7278fd3d792b47199ba36"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 02 15:54:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 15:54:11 2013 +0000"
      },
      "message": "Merge \"Clean up role of component name in media button event receiver\" into jb-mr2-dev"
    },
    {
      "commit": "16b8cffb2893c10c35788191847500004da466d1",
      "tree": "ca0aa4e9fff9d8112600dc033446b534174a0a6e",
      "parents": [
        "8074cc0c068c06cea7e174f82c0f1c235fae43a7"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sat Mar 30 16:26:13 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 01 21:59:35 2013 -0700"
      },
      "message": "MediaDrm API update\n\nClarify offline usage of sessions and keys and implement\nimplement CryptoSession to support additional crypto use\ncases.\n\nChange-Id: Id3f8c706e9e3034b09af8e2a6a2f26bd74a49f93\n"
    },
    {
      "commit": "579b0c091cd64a27b3e7d5bad8668dd9f3f92bb3",
      "tree": "809fc949544cc5e36a8205885a4d79ed740b1339",
      "parents": [
        "94d6170b67bcfb5dc5a0c988752d34e64a5f5272",
        "24e22d19a2316ff89be2530eb9bde5b3607ecf4c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 02 03:24:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 03:24:10 2013 +0000"
      },
      "message": "Merge \"Fix a doc typo.\" into jb-mr2-dev"
    },
    {
      "commit": "24e22d19a2316ff89be2530eb9bde5b3607ecf4c",
      "tree": "a0f6b1847687892765f29dfd3d1b90fc52613715",
      "parents": [
        "d42ae93c44a28f63d8f266277644864bfd0f4a16"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 01 19:41:41 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 01 19:41:41 2013 -0700"
      },
      "message": "Fix a doc typo.\n\nChange-Id: Id41af7644e552b0fbfe90818d0a9f42178c6474d\n"
    },
    {
      "commit": "3261b537c5fdec824575a1f6ad6d8942715e82e2",
      "tree": "93553978dcb21f3347194d98ee85eaf9885df247",
      "parents": [
        "73882cf489b44cfd393701c0629bb2d3613857d1"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 01 14:59:39 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 01 18:14:30 2013 -0700"
      },
      "message": "RemoteControlClient receives playback position change requests\n\nRemoteControlClient defines two listener interfaces for playback\n  position, one to let the framework query the current playback\n  position, the other to request playback to seek to a given\n  position.\n\nUpdated IRemoteControlDisplay interface to support passing info\n  about whether the user of RemoteControlClient can provide a\n  playback position, and receive a new one.\nUpdated implementations of IRemoteControlDisplay to new\n  interface.\n\nBug 8120740\n\nChange-Id: I1a5a969da4d0f8c9ad27f691919dd08f8653982b\n"
    },
    {
      "commit": "742647c809622703207c34171d482c562e34b10b",
      "tree": "6d351f39fbb110a931d31ba1a5f61125baa895c2",
      "parents": [
        "d42ae93c44a28f63d8f266277644864bfd0f4a16",
        "42b041ed4f184e3af7f788eb07307f556a2a6616"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 02 00:32:32 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 00:32:32 2013 +0000"
      },
      "message": "Merge \"AudioService: removed last audible volume index\" into jb-mr2-dev"
    },
    {
      "commit": "42b041ed4f184e3af7f788eb07307f556a2a6616",
      "tree": "257e9a13a1a20e288d936d7d65a8f6e02e3241e5",
      "parents": [
        "dac3fd9d90daffb4f6b08c788184ff38523348ba"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 29 11:36:03 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 01 16:16:57 2013 -0700"
      },
      "message": "AudioService: removed last audible volume index\n\nRemoved storage of last audible stream volume index.\nThis information is redundant because we already have\ntwo pieces of information (current volume and mute state)\nallowing to completely define which volume should actually\nbe applied by the framework or indicated to apps.\n\nThe last audible index management had anyway been broken by\nsuccessive changes making that the value stored could be 0\nin some cases causing problems like issue 8109149 when\nrestoring the volume settings from the DB.\n\nBug 8109149\n\nChange-Id: Iea80f5a994554e42d45b227f651ec9646844aa77\n"
    },
    {
      "commit": "1341f1eee3493fc5e263494acb8adebb6f0180b6",
      "tree": "6e289d313441e7ac83294e5c2b83ed887d944eb2",
      "parents": [
        "0102443c4f52f2e15fd731c452f0c4745312d448"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:52:47 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Apr 01 10:54:22 2013 -0700"
      },
      "message": "MTP: Implement date created field in GetObjectInfo\n\nBug: 8293874\n\nChange-Id: I3e50ea1049f63e2ed3a1f849fef74a2fbf206fe8\n"
    },
    {
      "commit": "b839b83c7349533b4cb7278fd3d792b47199ba36",
      "tree": "3a6e81c3eadccc07e1dac655512342a96bbc66a3",
      "parents": [
        "6f2683698ea1b316ae49623a7e9a13d9d9b53f71"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sat Mar 30 14:17:45 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sat Mar 30 14:17:45 2013 -0700"
      },
      "message": "Clean up role of component name in media button event receiver\n\nA public API was added to AudioManager to register a media button\n event receiver whithout having to supply a ComponentName.\nThis CL updates the comments that specified that the now optional\n ComponentName parameter can be null, and never persist the button\n event receiver is there is no ComponentName to persist.\nAlso unregistering the media button receiver makes no use of\n the ComponentName anymore.\n\nChange-Id: Idcfed1e2a85feb6fa178ca7797427f238705957c\n"
    },
    {
      "commit": "6f2683698ea1b316ae49623a7e9a13d9d9b53f71",
      "tree": "723e7c463672cd7bcb1706ed4cf88d542b77e871",
      "parents": [
        "9e8ba8f27316c793578e68fcc6632a6ea6240f4a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sat Mar 30 12:35:51 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sat Mar 30 12:35:51 2013 -0700"
      },
      "message": "Fix RemoteControlStackEntry constructor in AudioService\n\nAdd missing call to constructor of RccPlaybackState to initialize\n the mPlaybackState field of the RemoteControlStackEntry class.\n\nbug 8512601\n\nChange-Id: I636d5c1b416d6a3d3808d5be53c9c544ab293732\n"
    },
    {
      "commit": "be1339edc445eef19c3aa880b51a5c500cab6f82",
      "tree": "330f5d9cab8aa7f4ca4e256cb22fcc2c5f716585",
      "parents": [
        "a92ca7fa3ec630aee14e51d87851749956bad875",
        "328f7b7160d4c5a30c6810cbcd4aa01bb7b57dda"
      ],
      "author": {
        "name": "kmccormick",
        "email": "kmccormick@google.com",
        "time": "Fri Mar 29 16:04:09 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 29 16:04:09 2013 -0700"
      },
      "message": "am 328f7b71: am 90fa2ae2: am 23b55e78: am 3fab60bd: am 183c95e0: Merge \"Doc update: PlaybackCompleted valid state 4 pause\" into jb-mr1.1-docs\n\n* commit \u0027328f7b7160d4c5a30c6810cbcd4aa01bb7b57dda\u0027:\n  Doc update: PlaybackCompleted valid state 4 pause\n"
    },
    {
      "commit": "328f7b7160d4c5a30c6810cbcd4aa01bb7b57dda",
      "tree": "69bd7bae661e9ee590e02aabd5296d174c2330b4",
      "parents": [
        "a8858d215123b819557d130bfeeeb50568649b51",
        "90fa2ae28c200e0269f86f7d4e486ce781763a99"
      ],
      "author": {
        "name": "kmccormick",
        "email": "kmccormick@google.com",
        "time": "Fri Mar 29 16:02:30 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 29 16:02:30 2013 -0700"
      },
      "message": "am 90fa2ae2: am 23b55e78: am 3fab60bd: am 183c95e0: Merge \"Doc update: PlaybackCompleted valid state 4 pause\" into jb-mr1.1-docs\n\n* commit \u002790fa2ae28c200e0269f86f7d4e486ce781763a99\u0027:\n  Doc update: PlaybackCompleted valid state 4 pause\n"
    },
    {
      "commit": "b04c07fb9b105fe55ea261283d0be2c817133d67",
      "tree": "7042fe6660149cef90a01b4faed7676fd1286add",
      "parents": [
        "689e827aa3fa69d20087972dfb93ed257e4d109b"
      ],
      "author": {
        "name": "kmccormick",
        "email": "kmccormick@google.com",
        "time": "Fri Mar 29 15:48:45 2013 -0700"
      },
      "committer": {
        "name": "kmccormick",
        "email": "kmccormick@google.com",
        "time": "Fri Mar 29 15:50:03 2013 -0700"
      },
      "message": "Doc update: PlaybackCompleted valid state 4 pause\n\n\"Bug: 7962402\"\n\nChange-Id: Ie41d7085373794e98208d8815010b3ca1d81378c\n"
    },
    {
      "commit": "bc43b4c2f24fd03c0d0546895c97918c1736d9fb",
      "tree": "4b89014791d7e01d444c962a27e8c63bb3694990",
      "parents": [
        "a4b68908bdfefdf6c79a8b2c3d7bda00c543532f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 22 09:30:50 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 29 09:47:48 2013 -0700"
      },
      "message": "RemoteControlClient can report current position, speed\n\nExtend RemoteControlClient class to support reporting the\n current playback position, and the playback speed.\nDefine listener for an application to receive new playback\n position to seek to (use of listener to be implemented).\nUpdate IRemoteControlDisplay implementations to new interface.\n\nbug 8120740\n\nChange-Id: I2654daeca1ac49713d325df8226dceb85943c020\n"
    },
    {
      "commit": "6b5e22d52c69cb6d80ff09bd32395b0034ada343",
      "tree": "a5985a62d9470d49c069348a72df4b1ba46af246",
      "parents": [
        "80ab68ce233598ab13a9875fe17d4ec51aa5517b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 28 16:10:45 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 28 16:10:45 2013 -0700"
      },
      "message": "audio service: fix BT SCO intent permission again\n\nCommit 2a57ca93 did not address the calling permission\nfor setMode() method which can also indirectly call\nBluetoothHeadset APIs.\n\nBug 8242429\n\nChange-Id: I8483c0492836192f47984c48629291cb261b001b\n"
    },
    {
      "commit": "f2b0fdb2f7d701355d3fdb7b9a7780387cbf0e46",
      "tree": "b9df7def6d52acf99f1bc8fb527bae082ff718aa",
      "parents": [
        "972a9255a7e2c75cf13dab74121cb367c03e2809",
        "80569f7ff7db28ce98dde6e22bb4521ddbe5490a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 27 17:35:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 27 17:35:44 2013 +0000"
      },
      "message": "Merge \"AudioEffect types in SDK\" into jb-mr2-dev"
    },
    {
      "commit": "80569f7ff7db28ce98dde6e22bb4521ddbe5490a",
      "tree": "e0e30f1a2ecd5bba98d9b7197d38f64996ca3729",
      "parents": [
        "aad37a1eeb4dcd35500a382401b889d34f6430d2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 26 15:37:28 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 27 09:59:24 2013 -0700"
      },
      "message": "AudioEffect types in SDK\n\nNot all effect types are defined by OpenSL ES. Add the full UUID\n effect identifier in the superclass of all audio effects.\n\nbug 8113082\n\nChange-Id: I8dfc6cdcfd2a145e792fb3669e6132e6f19d1c16\n"
    },
    {
      "commit": "3e4a3ea2ff03a6a1f1f7a2bebac9a86fe6555754",
      "tree": "b46b983ad05f3d7b5389f569dd39ca63506a51ac",
      "parents": [
        "519ba7b10c4e0da3586aeeaa9696349f28313898"
      ],
      "author": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Wed Mar 27 16:52:35 2013 +0530"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Wed Mar 27 16:52:35 2013 +0530"
      },
      "message": "Correct executable bit for source files [Take 2]\n\nChange Ieb51bafb46c895a21d2e83696f5a901ba752b2c5 left out some\nfiles, this fixes them.\n\nChange-Id: Ia949a8581668836ea0251602e048f09c852f5169\n"
    },
    {
      "commit": "5d3eb44a749ece55ce345f9d8ac608fc3715f9da",
      "tree": "902536fd62aec3a9b267c6aa631cb33a8221d7d9",
      "parents": [
        "c1905339bcb67c11380a366c5ac98da82e6e9b7b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 21 15:35:10 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 25 16:28:35 2013 -0700"
      },
      "message": "AudioService: rewrite sound effects loading\n\nHandle all access to SoundPool in the message Handler to\nsynchronize load/unload and play requests.\n\nAdd a timeout to load operations in case a problem occurs while loading\na sample and the SoundPool callback is not called.\n\nBug 6633095\n\nChange-Id: I39949e4c8b2f7ca2d8b760b1f92c7e0fcd0a46e1\n"
    },
    {
      "commit": "4d572b0134318433467b95f829545753147c0b43",
      "tree": "6b25c454985494d23ff7cb3ebbcb3306dea7ffda",
      "parents": [
        "f00529d901da11d98ddf4b3b06d411e6879c9591",
        "90defba919e8e969a9963bf401a7b144d869accf"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Mar 25 20:18:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 20:18:18 2013 +0000"
      },
      "message": "Merge \"Load crypto plugins from additional shared libraries\" into jb-mr2-dev"
    },
    {
      "commit": "7c566bf3e4a10d74588b3e92ea3f6af310930f37",
      "tree": "67e079d9ea3ec484a2997dc0db9e5d1662a24124",
      "parents": [
        "37f180b4a52e4c1d0b6a7b400b6579b7ff25f307",
        "83a017b6b7c099d1a0293e5839be6477325aef06"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 25 17:08:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 17:08:28 2013 +0000"
      },
      "message": "Merge \"audio service: add config option for fixed volume\" into jb-mr2-dev"
    },
    {
      "commit": "90defba919e8e969a9963bf401a7b144d869accf",
      "tree": "a2d0172227159cc373cc7d953fb79deefd747803",
      "parents": [
        "fd81f91052d54c0354834fcd4f423025f2d8c93e"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 22 15:32:27 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 22 15:32:27 2013 -0700"
      },
      "message": "Load crypto plugins from additional shared libraries\n\nCurrently crypto plugins are expected to be in libdrmdecrypt.so.\nWhen there are multiple plugins supporting different schemes,\nthis approach requires source code integration across\nvendors which is unmanagable.  Also, for integration with\nMediaDrm where the crypto keys are obtained from a drm server,\nthe MediaCrypto plugin needs to interoperate with the MediaDrm\nplugin. This change allows {MediaCrypto, MediaDrm} pairs that\nare logically related to be implemented in a common shared\nlibrary.\n\nMulti-repository commit, goes with:\nhttps://googleplex-android-review.googlesource.com/287838\n\nChange-Id: I08577cda0cbcb22ebe3cb874f5fcafe411c36be3\n"
    },
    {
      "commit": "961cae92540763226648813d111c5b5c3b0f1597",
      "tree": "10b0edf96b8aadba2917c86c5c3d26d6266ef17f",
      "parents": [
        "b7f4c7b7feec98adde79d6d691c0001943b16595"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 20 14:59:43 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 22 14:49:28 2013 -0700"
      },
      "message": "New media button API.\n\nThis allows sending media buttons to any PendingIntent,\nso they can be captured with a registered receiver.\n\nAlso add some new ViewTreeObserver APIs; this is all for\na new support library API to watch media buttons while an\napp has input focus.\n\nChange-Id: I3c51cef59460662b008c9a2cc87d6a6383c21855\n"
    },
    {
      "commit": "83a017b6b7c099d1a0293e5839be6477325aef06",
      "tree": "7ecdcd95f23900c35f2dc551bbb1690a6bf748db",
      "parents": [
        "e37478c4ebbe6e95ef3904b9f2fa0e93e1b258ac"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 19 18:15:31 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 21 18:43:00 2013 -0700"
      },
      "message": "audio service: add config option for fixed volume\n\nAdd a boolean configuration option config_useFixedVolume indicating if\nstream volumes or master volume can be modified.\nIf the option is true, the AudioManager volume and mute APIs will be no ops and the\nvolumes will be maxed out.\nTo be consistent:\n- the ringer mode is forced to normal and cannot be modified\n- volume panel is never displayed\n- volume settings are not available\n- ringer mode global action is not displayed.\n\nThe default for this option if false.\n\nThis is useful for a class of devices intended for connection to a digital\naudio output only, where the volume is directly controlled on the audio sink.\n\nBug 8161458\n\nChange-Id: I2571d5ee79952ef0914d8fd1985816467a80adcd\n"
    },
    {
      "commit": "fc7c9b484a25e60a569253d9e0c24d1f4205f490",
      "tree": "80ee757cf32420a38a3e4e24ce82627fec318d01",
      "parents": [
        "1467873aa4ea7309ca389a1f02b8f801492a652f",
        "e78fced559d879b2e37b610d0d9a89daf08f0f2b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 21 00:05:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 21 00:05:08 2013 +0000"
      },
      "message": "Merge \"audio service: allow touch sounds customization\" into jb-mr2-dev"
    },
    {
      "commit": "1e7298b250a3cddfcdcf54e413748e8eb71ca0c8",
      "tree": "8885f7a1c9d7ec5a5a24e8e864264ae548c78929",
      "parents": [
        "cc5911686d738d0ce0bf45acac14243ed5a16cf4",
        "effc9b4839f3cc109fe3d8244022f3c898cd080b"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Mar 20 20:53:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 20 20:53:01 2013 +0000"
      },
      "message": "Merge \"Add the orientation hint to the MediaMuxer\" into jb-mr2-dev"
    },
    {
      "commit": "e78fced559d879b2e37b610d0d9a89daf08f0f2b",
      "tree": "d59254f23c0e7c29fb23c658cc187ff2ffeb50d6",
      "parents": [
        "4427db27b312b46cc34a83a893e522a6468ee396"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 15 16:03:47 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 20 10:38:07 2013 -0700"
      },
      "message": "audio service: allow touch sounds customization\n\nAdded audio_assets.xml resource listing the\naudio asset files for each touch sound effect.\nThis resource can be overlayed to customize the\ntouch sounds for a given device.\n\nBug 8339000\n\nChange-Id: I8c156f0ce7f8769a58d77442fbd9c46b57c202e9\n"
    },
    {
      "commit": "d4a2118585d6227ccdccb946c946275b81d99ec9",
      "tree": "95830696dc363a3f4970205e16c8c173a5de4e33",
      "parents": [
        "63f1e2fb6b7102490b11523589b82c2101d3c079",
        "8a0c80fdcc46faa8cb8c9f4dda06f4b63ec2f906"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 20 16:48:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 20 16:48:52 2013 +0000"
      },
      "message": "Merge \"Implementing MediaDrm APIs\" into jb-mr2-dev"
    },
    {
      "commit": "a850e7fae47c6207b061e27141a6508bb4c98361",
      "tree": "20fbac72345cda349c0738ae9386ec504f6b62ac",
      "parents": [
        "0a4962ad11fadf7798c360efaee31b8d9d75bc9e",
        "780dc88ddbc1d7a8d4a634e556a5bba04992a412"
      ],
      "author": {
        "name": "Yu Shan Emily Lau",
        "email": "yslau@google.com",
        "time": "Wed Mar 20 00:58:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 20 00:58:31 2013 +0000"
      },
      "message": "Merge \"Fix the media memeory stress test. The media memory stress test used the ps mediaserver to capture the memory usage of mediaserver. As the media.log is enabled recently, when runnign the ps mediaserver, it will show both entries. The fix is simply skip the first two lines and parse the laste output.\" into jb-mr2-dev"
    },
    {
      "commit": "780dc88ddbc1d7a8d4a634e556a5bba04992a412",
      "tree": "03f970f1065832c5748bd59f43e91dab49ca6df5",
      "parents": [
        "984505d8168713469fb36bb50da50a2638751122"
      ],
      "author": {
        "name": "Yu Shan Emily Lau",
        "email": "yslau@google.com",
        "time": "Tue Mar 19 16:53:38 2013 -0700"
      },
      "committer": {
        "name": "Yu Shan Emily Lau",
        "email": "yslau@google.com",
        "time": "Tue Mar 19 17:42:50 2013 -0700"
      },
      "message": "Fix the media memeory stress test.\nThe media memory stress test used the ps mediaserver to\ncapture the memory usage of mediaserver. As the media.log\nis enabled recently, when runnign the ps mediaserver, it will\nshow both entries. The fix is simply skip the first two lines\nand parse the laste output.\n\nChange-Id: Ib2a4ba7936505b4ea24463bf8a5af2c499b71138\n"
    }
  ],
  "next": "effc9b4839f3cc109fe3d8244022f3c898cd080b"
}
