)]}'
{
  "log": [
    {
      "commit": "758799cef41fc5495f59eeb6249d02ce9154cde8",
      "tree": "5cbfa825fd668d81c6fe6a8ec485dd8ebb2fd151",
      "parents": [
        "beb57a5a08207af80180b93dd80d611a85997c43",
        "3c7801882bbb6d5f3cc641525a54cb8a6c4aca34"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:22:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:22:08 2014 -0700"
      },
      "message": "resolved conflicts for merge of 3c780188 to master\n\nChange-Id: Ic579d346c27ff05ea6444faaa60fa6caaec86fbf\n"
    },
    {
      "commit": "3c7801882bbb6d5f3cc641525a54cb8a6c4aca34",
      "tree": "f6f5e9f9d4ffecd658b76a3ef176564253768e3b",
      "parents": [
        "f1ac623fcc6bbda2faff9752cd611182a897afe1",
        "089affb6c2d9ed1e2d49df4be02d30dc490506f9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Mar 14 20:53:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 14 20:53:02 2014 +0000"
      },
      "message": "am 089affb6: Merge \"mediaserver and associated services are 32-bit only\"\n\n* commit \u0027089affb6c2d9ed1e2d49df4be02d30dc490506f9\u0027:\n  mediaserver and associated services are 32-bit only\n"
    },
    {
      "commit": "af783aa91f7a279153fb8bab8d0d6b9f737996e9",
      "tree": "25c5b54bf884f220cce4ee21a9cbaf6583820f91",
      "parents": [
        "19afb3869eb6a3e3733dc1f7420e1d4c3c03d376"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Sun Mar 02 19:48:19 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 12 11:24:53 2014 -0700"
      },
      "message": "mediaserver and associated services are 32-bit only\n\nalso 32-bit only command-line apps\n\nChange-Id: I9ac557a8d02bbf6986a9b5c3cdce23d400b306a3\n"
    },
    {
      "commit": "1cd139824b2e6832f239cd27d8962d3239053c02",
      "tree": "a56580b67303cd3a4aef0ab6914facc98f6f9a83",
      "parents": [
        "e0381245dff04aa823a59aa8b85869eddab0f39f"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jan 17 15:12:51 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Mar 10 11:40:04 2014 -0700"
      },
      "message": "NuPlayer: use MediaCodec instead of ACodec\n\nBug: 11785204\nChange-Id: I1455bfc683469c7a69e565b179aceacbc5c459f5\n"
    },
    {
      "commit": "259f1624cf7b93ba831af10a616267487601c27f",
      "tree": "69e0a151701a0a3b97f88d0859f0f674219e073b",
      "parents": [
        "664334fc2204b9968e1600313383f5a6ff321811"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Feb 21 15:39:01 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Mar 10 11:40:03 2014 -0700"
      },
      "message": "Revert \"NuPlayer: Use a software renderer when using software codecs\"\n\nRemove software renderer support from NuPlayer because it is included\nin MediaCodec.\n\nChange-Id: I06e001df76df2e18ea8169620ff33aeec57e5ca2\n"
    },
    {
      "commit": "31a98ad0da98227f3c76469e7a8a267c9539b6e8",
      "tree": "c78392dbff169a61ae80e20759e109f4a70c2159",
      "parents": [
        "621d382baa8e300036f58e7acd43bda9ce87f854",
        "8d1caa026caef3673799481c5fba454306f831e9"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 07 10:29:08 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 07 10:29:08 2014 +0000"
      },
      "message": "resolved conflicts for merge of 8d1caa02 to klp-modular-dev-plus-aosp\n\nChange-Id: Ibcb60d0d3bbc8beb54440951ffe8a14b946ccc85\n"
    },
    {
      "commit": "8d1caa026caef3673799481c5fba454306f831e9",
      "tree": "654e8de748a437c7d25550381ff7c0c8015fe40e",
      "parents": [
        "04352de2e32d6dc0901436951f69357f5cd8655c",
        "49ea13379fb15ddb73183ebafa3a377342ef932f"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 07 02:42:14 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 07 02:42:14 2014 +0000"
      },
      "message": "am 49ea1337: Merge changes I787e1c05,I72d3a5e1,I0a5cc65f,I75fc2a25,I2c2be08d, ... into klp-dev\n\n* commit \u002749ea13379fb15ddb73183ebafa3a377342ef932f\u0027:\n  LiveSession: Use the actual, possibly redirected url as base in the M3U\n  M3UParser: Skip query strings when looking for the last slash in a URL\n  ChromiumHTTPDataSource: Keep track of the redirected URL\n  Initial HLS seamless switch implementation.\n  NuPlayer side support for seamless format switch.\n  LiveSession refactor\n  PlaylistFetcher: Add support for block-by-block decryption.\n  LiveSession: Add support for block-by-block fetchFile.\n"
    },
    {
      "commit": "0523da8f16557a85395da86ab76be6d8cb771da0",
      "tree": "41e633ee427fcec6193782b8cd1766089d5e20ed",
      "parents": [
        "6c8495c8f1ccc35db972ee7ac0dbb8baf5843548"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jan 23 16:18:22 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:26:58 2014 -0800"
      },
      "message": "NuPlayer side support for seamless format switch.\n\nAvoid reinstantiating decoder if seamless format switch is supported.\n\nBug: 11854054\nChange-Id: I2c2be08d6da90cc835ec747d04a76db2313dfc7c\n"
    },
    {
      "commit": "d0115d8c4db2f337030dea706bc0a434c4a03ed6",
      "tree": "239450c60bc4cb8519edeb8985dbc601fe51c652",
      "parents": [
        "7e92abeafb184e8a34213d7149592e95a72601b0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 17:16:50 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 12:17:54 2014 -0800"
      },
      "message": "update offloaded audio track sampling rate\n\nAudioPlayer must read the sampling rate from offloaded audio sinks\nwhenever a new time position is computed as the decoder can update\nthe sampling rate on the fly.\n\nBug: 12823955.\n\nChange-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88\n"
    },
    {
      "commit": "bce50bfc3846ab008bafa75c5d3f29fd7b5395f7",
      "tree": "ebefb9f660bf71aec96bd297e155d12c9d3588e8",
      "parents": [
        "838b3d8bafa4a781e277870dee4e0390165cff52"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 27 15:29:51 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 28 07:56:38 2014 -0800"
      },
      "message": "Fix type of AudioTrack/AudioRecord parameter frameCount\n\nIt\u0027s size_t consistently\n\nChange-Id: I29638ef59ac773218025f2403a3508a307b487e0\n"
    },
    {
      "commit": "e27e2d9bcabc1a367cb56b4599665c931a1d22ec",
      "tree": "5ec47116fa737797ad8fd1d737ce27d4161103f2",
      "parents": [
        "3d2e09f0221693de08129edd02adf340a44e7a38"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 27 14:29:56 2014 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 27 14:29:56 2014 -0500"
      },
      "message": "Fix includes to no longer pull in Skia includes directories.\n\nbug:13225538\nChange-Id: I4fccc414923f7e62cd46d691c67cb44b9692c225\n"
    },
    {
      "commit": "1a5690652f3f6ee40f15c2f9f6c4b6badf4dbcf5",
      "tree": "2bfbca1610aa0124277262905ae7eb6bb171a2e1",
      "parents": [
        "882469cfe767188a4c67d2d83f3d72ab553a4818"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Feb 25 21:56:07 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Feb 26 10:44:51 2014 -0800"
      },
      "message": "initialize encoder at start() time for camera source\n\nBug: 13156212\nChange-Id: I845ef51f662f04c50179dbfb128204922a424e1d\n"
    },
    {
      "commit": "9e2c298daec57edcf3d4d740673ebb94819f84c1",
      "tree": "3321238a97e8d7ab8a79bfc71b26b97bb208ca1e",
      "parents": [
        "20550a3ae42e2797776802149e3be420ecb064b8",
        "6d0a94ead4f6e62b8ca9b2b1d775ffcd0a7a7aab"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Feb 24 19:59:27 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 24 19:59:29 2014 +0000"
      },
      "message": "Merge \"NuPlayer side support for seamless format switch.\""
    },
    {
      "commit": "6d0a94ead4f6e62b8ca9b2b1d775ffcd0a7a7aab",
      "tree": "ae76d5da5f6acb66e553abc039e7e8d4bfc6c0f5",
      "parents": [
        "3a005b3b19b750afe24577ae322aff4602ca2740"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jan 23 16:18:22 2014 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Feb 24 11:26:54 2014 -0800"
      },
      "message": "NuPlayer side support for seamless format switch.\n\nAvoid reinstantiating decoder if seamless format switch is supported.\n\nChange-Id: I2c2be08d6da90cc835ec747d04a76db2313dfc7c\n"
    },
    {
      "commit": "dc6ac201032d0f6ad0c8149ae2f009ec38693025",
      "tree": "66b04298c58f76a0c9723dcd6c6dbb2ebfa6ee63",
      "parents": [
        "323da1015a758243c2c43017b026a01c6cf0c6f2",
        "2c9c8cba8562cc3a27532e4cd348912cc78d8d98"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Feb 22 04:42:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 22 04:42:25 2014 +0000"
      },
      "message": "Merge \"support for time lapse/slow motion when using SURFACE source\""
    },
    {
      "commit": "2c9c8cba8562cc3a27532e4cd348912cc78d8d98",
      "tree": "dab3690baff0f03f604a41321281ce2f39167272",
      "parents": [
        "b63d2433350d56bda9f3477549086c90bb6d535e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Feb 11 13:54:59 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Feb 14 17:42:47 2014 -0800"
      },
      "message": "support for time lapse/slow motion when using SURFACE source\n\nBug: 13032650\nChange-Id: Iecbadf9f29c8c49353416fc467fb3acdde279595\n"
    },
    {
      "commit": "c940c38242e8e0265db25a646ad63263934f2bb9",
      "tree": "6da7629ff9195d916a7ee7974dced87e830bce51",
      "parents": [
        "240abcc4bf661a10ffca24859945796acc76ac6e",
        "d457c970c8d08519cd77280a90b61ae1e342cfe3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 13 22:44:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 13 22:44:30 2014 +0000"
      },
      "message": "Merge \"Track pid for each session\""
    },
    {
      "commit": "240abcc4bf661a10ffca24859945796acc76ac6e",
      "tree": "b3d3669ccb1da7a3cf2fc27cbd30d4c596acbdbd",
      "parents": [
        "29182ee0515bd8dd56a22bc1d0c7cad7ca4cfd86"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 13 13:32:37 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 13 13:40:46 2014 -0800"
      },
      "message": "Remove unused FragmentedMP4Parser and friends. The functionality has been\n\nsubsumed into MP4Extractor.\n\nChange-Id: Ic1b6445660adfb985c604f1ca6f0c86585f8de04\n"
    },
    {
      "commit": "ccb067b1d8424ba610cbd3de83368bd55b532b5b",
      "tree": "bf84c5014263d1d72370d5274edb4a3f9711aa8f",
      "parents": [
        "880c6b2dd8b2fe2ab0054e74bbc108d322e82aa0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 11 14:45:59 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 11 14:48:27 2014 -0800"
      },
      "message": "fix the build by fixing more warnings.\n\nChange-Id: Ied0ec39eb83b101582702d1e30c21643ccf6353e\n"
    },
    {
      "commit": "d457c970c8d08519cd77280a90b61ae1e342cfe3",
      "tree": "f0f409db4d834b4d70b2244dd97dfa707496df50",
      "parents": [
        "1d6fa7af1288b550faabe4ec2cf98684236723db"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Feb 11 08:47:07 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Feb 11 12:39:43 2014 -0800"
      },
      "message": "Track pid for each session\n\nso they can be properly freed.\n\nChange-Id: I6f389035bc29e74e7c367c1c6d0252b180f666b3\n"
    },
    {
      "commit": "84333e0475bc911adc16417f4ca327c975cf6c36",
      "tree": "4973c505d7c73d883c2cd796bc66ba96312c4a7a",
      "parents": [
        "1d6fa7af1288b550faabe4ec2cf98684236723db"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 07 15:36:10 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 11 11:41:07 2014 -0800"
      },
      "message": "warnings be gone.\n\nChange-Id: Ie3bae3f037730e316d7fca12e7a3527973f752ef\n"
    },
    {
      "commit": "1d6fa7af1288b550faabe4ec2cf98684236723db",
      "tree": "a8801ca9a0925ba1faccf17acea4aa78d71a9d29",
      "parents": [
        "b82a9f105f89d6b3684c9f626918042bd8977912",
        "566be7c33fc56ae4c34168ecbee5316374f7e3c5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:47:53 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:53:20 2014 +0000"
      },
      "message": "resolved conflicts for merge of 566be7c3 to master\n\nChange-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce\n"
    },
    {
      "commit": "377b2ec9a2885f9b6405b07ba900a9e3f4349c38",
      "tree": "b938e1d75a1beefae86244f287ca22f4a277740d",
      "parents": [
        "cdda7bf4d3ca9cad6979374a18dd5be79ea83d80"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Mon Feb 03 12:35:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 11:40:06 2014 +0000"
      },
      "message": "Make frameworks/av 64-bit compatible\n\nContains the necessary changes to make frameworks/av build and work\non a 64-bit machine.\n\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n\nChange-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43\n"
    },
    {
      "commit": "8497416c40bae877bc67b0ef30bb41a73af54711",
      "tree": "34c4c44bab140953cfa9b3576f9a2a5e3c82f09d",
      "parents": [
        "1dd3da08445ac96e64a1ca72ba0c11876cc4d631",
        "429f2bf7527daf872a1bbdafca8ad28635b84644"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 10 12:51:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 10 12:51:29 2014 +0000"
      },
      "message": "am 429f2bf7: am e2307ccb: Merge \"frameworks/av: fix errors inside ALOGV\"\n\n* commit \u0027429f2bf7527daf872a1bbdafca8ad28635b84644\u0027:\n  frameworks/av: fix errors inside ALOGV\n"
    },
    {
      "commit": "80520381d0bdf3451bd17c9ddef73d3fe71c58c2",
      "tree": "6e808da46811a04acb53993b6a5ba2c71d14e126",
      "parents": [
        "85f06f640d364490dbf133f55e9d62d7c7c0db11"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 31 16:49:31 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 07 08:42:56 2014 -0800"
      },
      "message": "Fix warnings about unused parameters\n\nChange-Id: I27dc108e2c1f7ffd414bb7ff3d4c349651da6c26\n"
    },
    {
      "commit": "94dcc94b16cc6c2a7aa02df2d0d6b8743d738d78",
      "tree": "56cdd5bda1b552f0c2cfc54efa0f44c4848c31ed",
      "parents": [
        "d66cd743525cc049033caa3e81cbdf74c72a4556"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 06 20:29:44 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 06 20:29:44 2014 -0800"
      },
      "message": "frameworks/av: fix errors inside ALOGV\n\nFix errors exposed by adding compile-time checking to disabled ALOGVs.\n\nChange-Id: I9602a4a485dffa3caad732c2a19ec0e41a0ac65b\n"
    },
    {
      "commit": "7ca6e73bed1d2e1a928104feb6e9ae92953bfff5",
      "tree": "8c5d766aec7032948ec33172c060c3dc91bb9594",
      "parents": [
        "96f8436385163764cda10f1d45e13b9bd691a8b4",
        "72cecca17d735db6532c45f0a7e10c47ee6f065a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Feb 06 18:15:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 06 18:15:50 2014 +0000"
      },
      "message": "Merge \"Change StagefrightRecorder to use MediaCodec\""
    },
    {
      "commit": "72cecca17d735db6532c45f0a7e10c47ee6f065a",
      "tree": "d2f532b1909ea605f10e6044d2f027e7e58a8575",
      "parents": [
        "412d4744efae64083e4f99a664e3efaba031af48"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Dec 26 01:38:35 2013 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Feb 05 15:46:26 2014 -0800"
      },
      "message": "Change StagefrightRecorder to use MediaCodec\n\nBug: 12305192\nChange-Id: I72d7cb571be5bd348b58ad650f3269d24c15d350\n"
    },
    {
      "commit": "81e68448f3361eaf8618930471fdc3c21bdf5cbc",
      "tree": "afc00a9a35746f18f85200755870067b4d63dd80",
      "parents": [
        "412d4744efae64083e4f99a664e3efaba031af48"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 05 11:52:33 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 05 12:27:54 2014 -0800"
      },
      "message": "Remove no longer needed http proxy handling code, it\u0027s obsolete now\n\nsince we started to use java\u0027s HTTPConnection instead of the native\nimplementation. Also remove other remnants of the previous http implementation,\nsuch as accounting for the http user\u0027s uid.\n\nChange-Id: I60bfd31381ea40d2220db587ec5c433093b60034\n"
    },
    {
      "commit": "1b86fe063badb5f28c467ade39be0f4008688947",
      "tree": "d88660112d407540184ad8e1292ed8aa98fae317",
      "parents": [
        "5ce88270eb2d41462de8c4155673b802b2ca48cb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 29 11:13:26 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 04 15:11:53 2014 -0800"
      },
      "message": "FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code\n\nChange-Id: I9f74a86e70422187c9cf0ca1318a29019700192d\n"
    },
    {
      "commit": "8b567a219c3c7673d0b17e2a4da7e9ac4e984c3c",
      "tree": "6164dc629c28f24af2cb84861976be127ff7724b",
      "parents": [
        "543140eb709a07bc386eb5f667a4a72e31dba56c",
        "fea77cb3c22dcb691f44b939c626ae3070212b73"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 17 20:11:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 17 20:11:41 2014 +0000"
      },
      "message": "am fea77cb3: am fd0daeb3: am 4cc47940: Merge \"Fix compile error in NuPlayerRenderer debug print\"\n\n* commit \u0027fea77cb3c22dcb691f44b939c626ae3070212b73\u0027:\n  Fix compile error in NuPlayerRenderer debug print\n"
    },
    {
      "commit": "d6074f08cc37843e8c599b2ab4b16d87c3bc67eb",
      "tree": "b9efca36c8d9890fcd86b33be746548a67e907c3",
      "parents": [
        "8115f4b206dbd04c620f062feb3c7785e2732ab3"
      ],
      "author": {
        "name": "Oscar Rydhé",
        "email": "oscar.rydhe@sonymobile.com",
        "time": "Tue Oct 15 09:54:08 2013 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Fri Jan 03 13:58:02 2014 +0100"
      },
      "message": "Fix compile error in NuPlayerRenderer debug print\n\nWhen activating verbose log prints in NuPlayerRenderer the build\nfails because a variable have changed but the log print hasn\u0027t been\nupdated.\n\nChange-Id: I3089b087d296c37dfe6379d7e75d5892912fef96\n"
    },
    {
      "commit": "5e49afd05566820517747b9a8071c99ec0918328",
      "tree": "0dd9697822c0bd70f03bb776bc78e2da60f28991",
      "parents": [
        "a67c76538fff102cd44b2f38dd073df5f2a33605"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 17:16:50 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 17 13:41:37 2013 -0800"
      },
      "message": "update offloaded audio track sampling rate\n\nAudioPlayer must read the sampling rate from offloaded audio sinks\nwhenever a new time position is computed as the decoder can update\nthe sampling rate on the fly.\n\nChange-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88\n"
    },
    {
      "commit": "e2d617f5ba7fb90f27b03e2593666b2c927e4dc9",
      "tree": "187992f0c2d4bc565ca24b34aa0ee78e359a3f68",
      "parents": [
        "92630351d265a61faae2dfe006a8bb330283aa7b",
        "2381f06f374ee0cb8bca0edf5388394432b00e6d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Dec 05 12:38:14 2013 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Dec 05 12:38:14 2013 -0800"
      },
      "message": "Merge commit \u00272381f06f374ee0cb8bca0edf5388394432b00e6d\u0027 into HEAD\n"
    },
    {
      "commit": "84acd489b93e04bea7aab06d8abb024eef2576fd",
      "tree": "71ac66fba81649361ae864a9b99a696fc9b5d95d",
      "parents": [
        "866d90595a177f6027e97161781948baebf2aa68",
        "7ecfe4ec3f6842377f840513850ad31933bcea30"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Dec 02 23:31:18 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 02 23:31:18 2013 +0000"
      },
      "message": "am 7ecfe4ec: am 92630351: Merge \"NuPlayer: Use a software renderer when using software codecs\"\n\n* commit \u00277ecfe4ec3f6842377f840513850ad31933bcea30\u0027:\n  NuPlayer: Use a software renderer when using software codecs\n"
    },
    {
      "commit": "7ecfe4ec3f6842377f840513850ad31933bcea30",
      "tree": "c95547faa2d3b54defca0991f755b3e04de9b62f",
      "parents": [
        "616c2cf1507898a0de4228b95d435fd36ec1e029",
        "92630351d265a61faae2dfe006a8bb330283aa7b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 28 09:34:37 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 28 09:34:37 2013 -0800"
      },
      "message": "am 92630351: Merge \"NuPlayer: Use a software renderer when using software codecs\"\n\n* commit \u002792630351d265a61faae2dfe006a8bb330283aa7b\u0027:\n  NuPlayer: Use a software renderer when using software codecs\n"
    },
    {
      "commit": "92630351d265a61faae2dfe006a8bb330283aa7b",
      "tree": "c3f2d9f3e92406c1a9922eba728a6499a9608aec",
      "parents": [
        "90892d1be84776f59a619ea4ef9ce51be5828ff8",
        "da38df5f080eb62a06b22c5bada4357cf756255e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Nov 28 17:26:16 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 28 17:26:18 2013 +0000"
      },
      "message": "Merge \"NuPlayer: Use a software renderer when using software codecs\""
    },
    {
      "commit": "6f59db12a64f4496866952a251122ccb77a36c6b",
      "tree": "29fcb69aa1f491974ec2b2ea5a01155b53940be5",
      "parents": [
        "23700debf767ef7fdfc30d96612771c3a03ad40d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 17:16:50 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 22 09:09:51 2013 -0800"
      },
      "message": "update offloaded audio track sampling rate\n\nAudioPlayer must read the sampling rate from offloaded audio sinks\nwhenever a new time position is computed as the decoder can update\nthe sampling rate on the fly.\n\nChange-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88\n"
    },
    {
      "commit": "b4213a1252c23115f3fac77101adb33a9c6b9423",
      "tree": "1477fe0312af38a2a24e655f7d62d7c1b9b1f38f",
      "parents": [
        "b5099903c059dc913e0e592969c10d15fac0c14c",
        "576e89b523d7705545032edc67d98d9ab1dedbd2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 15 08:27:06 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 15 08:27:06 2013 -0800"
      },
      "message": "am 576e89b5: am 7dae71d6: Merge \"AwesomePlayer: correct stream type for offload\" into klp-dev\n\n* commit \u0027576e89b523d7705545032edc67d98d9ab1dedbd2\u0027:\n  AwesomePlayer: correct stream type for offload\n"
    },
    {
      "commit": "22612345ae97648d5b6db43cc1aa30aad77f7bba",
      "tree": "73b47a621118d0fa56d27929a9447e90ca27c97d",
      "parents": [
        "4215e6166fca9f87a6e9e848b3dfd4ab0d25c954"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 14 17:28:47 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 14 17:36:42 2013 -0800"
      },
      "message": "AwesomePlayer: correct stream type for offload\n\ncanOffloadStream() function in stagefright utils forces the\nstream type to AUDIO_STREAM_MUSIC when querying the audio policy\nmanager if a particular track is offloadable or not.\nThis causes MP3 ringtones to be offloaded which is not a validated use case.\n\nThe fix consists in using the actual stream type read from the AudioSink.\n\nBug: 11410937.\nChange-Id: I44b8e033a8e785a79cdc291b142f80b5580bdc4d\n"
    },
    {
      "commit": "b5099903c059dc913e0e592969c10d15fac0c14c",
      "tree": "3b483d46c7f73ac56109aef87a30e3747c3a63b1",
      "parents": [
        "27c70d391da6fde79d2e03fb767f9913555c1e9c",
        "4db37cedd4db8230f3ec6191d8d7ba2b0036886e"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Nov 15 01:18:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 15 01:18:56 2013 +0000"
      },
      "message": "Merge \"Fixed StagefrightRecorder::setupVideoEncoder to use the clipped bitrate value mVideoBitRate; removed unused arguments after refactoring.\""
    },
    {
      "commit": "4db37cedd4db8230f3ec6191d8d7ba2b0036886e",
      "tree": "d5869a78738ed4dff4c843d25e84a78ca0afbb63",
      "parents": [
        "0f3984ed3271484e223826e8a2e5f70c4111e08f"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Nov 11 21:14:30 2013 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Nov 11 21:14:30 2013 -0800"
      },
      "message": "Fixed StagefrightRecorder::setupVideoEncoder to use the clipped bitrate value\nmVideoBitRate; removed unused arguments after refactoring.\n\nBug: 11074303\nChange-Id: Ieb5dd7dc67e5bc16b6e580ba11b157e4365f3cd6\n"
    },
    {
      "commit": "41e7ae8f7f1ec93f8473142d1f3bfe07b22c5c51",
      "tree": "5617abecb89dfaddc547f4c73d8363d9d7f92ce6",
      "parents": [
        "0f3984ed3271484e223826e8a2e5f70c4111e08f",
        "cc5aeced30609326c7495eca1286163af3933fe1"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Nov 11 20:50:31 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 11 20:50:31 2013 -0800"
      },
      "message": "am cc5aeced: am e100b813: Merge \"StageFrightRecorder: do not use meta-data mode for software encoders\" into klp-dev\n\n* commit \u0027cc5aeced30609326c7495eca1286163af3933fe1\u0027:\n  StageFrightRecorder: do not use meta-data mode for software encoders\n"
    },
    {
      "commit": "e100b813c4d833b48b48b74100ad0b9a82c46954",
      "tree": "9a4688c5998afa5dfd86cb04e01e8b47c3fd702d",
      "parents": [
        "a72911563b0e5b21b196d40249b53975bf8d8f85",
        "9c7f845780d62ea09469a8dac7117cc01adfea5c"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Nov 11 16:16:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 11 16:16:47 2013 +0000"
      },
      "message": "Merge \"StageFrightRecorder: do not use meta-data mode for software encoders\" into klp-dev"
    },
    {
      "commit": "36bbb12410d4119cf3871ae9453a898c80d94800",
      "tree": "e58ce30e3cef7220c48f6e2c73cd2ef48c146156",
      "parents": [
        "21264c4f0de2e2e74a62290a4aaafea4cc865528",
        "921688852b72bfa921913b8afe18c0d749c6797d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 04 21:59:12 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 04 21:59:12 2013 -0800"
      },
      "message": "am 92168885: am f8a1169d: Merge \"Notify current video size if available\" into klp-dev\n\n* commit \u0027921688852b72bfa921913b8afe18c0d749c6797d\u0027:\n  Notify current video size if available\n"
    },
    {
      "commit": "3e518fd5d679abb83b654e473ea0fa5f7f16235f",
      "tree": "96ca7ab7e49d6f1535bc459bf89d8a1040e5a219",
      "parents": [
        "9cae217050aa1347d4ac5053c305754879e3f97f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 01 10:33:18 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 01 10:33:18 2013 -0700"
      },
      "message": "Notify current video size if available\n\nb/11248101\n\nChange-Id: I0fa3b5592efcf400c86692002267da6825e331ad\n"
    },
    {
      "commit": "9c7f845780d62ea09469a8dac7117cc01adfea5c",
      "tree": "1c69c580de33cf8dc15a5060447e4d9109181fbe",
      "parents": [
        "1c594b637df26499ce1dae2db34f2b3290efd838"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 30 10:02:12 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Oct 30 11:29:29 2013 -0700"
      },
      "message": "StageFrightRecorder: do not use meta-data mode for software encoders\n\nCamera HAL v1 uses vendor-specific camera-source meta-data mode, but\nsoftware encoders use generic gralloc-source mode, so they are not\ncompatible.\n\nChange-Id: I0d1bab8eada26dcb70c97b1eec83f06d1f331239\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 11446505\n"
    },
    {
      "commit": "9cae217050aa1347d4ac5053c305754879e3f97f",
      "tree": "dff82f277cba8f34af39eaeeb00adec01bbda26c",
      "parents": [
        "be567be3f92026f5964c1c9ecce00e30bb7df412"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 14 14:12:05 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 14:06:03 2013 -0700"
      },
      "message": "Assign blame for playback wakelocks.\n\nSet a work source for the playback wakelock, so that playback is\ncounted against the requesting app instead of the media server.\n\nCherrypicked from master.\n\nb/9464621\n\nChange-Id: I7329f88a288a95a582a78005a1c3d16a5a611e31\n"
    },
    {
      "commit": "462fd2fa9eef642b0574aa7409de0bde3fec8d43",
      "tree": "65446a138d197f062bf199480b96cca4df560fcf",
      "parents": [
        "f7d89bd79d170be3b299717ac11aff62909314c5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 14 14:12:05 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 11:13:17 2013 -0700"
      },
      "message": "Assign blame for playback wakelocks.\n\nSet a work source for the playback wakelock, so that playback is\ncounted against the requesting app instead of the media server.\n\nChange-Id: I7329f88a288a95a582a78005a1c3d16a5a611e31\n"
    },
    {
      "commit": "da38df5f080eb62a06b22c5bada4357cf756255e",
      "tree": "3adf6f4e8629b797f0a9a1ed71f6b9d73c20165a",
      "parents": [
        "e56f3c96fa6e7550b67e8b049f999aaa2ada1192"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Sep 25 16:05:36 2013 +0300"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Sep 25 16:35:33 2013 +0300"
      },
      "message": "NuPlayer: Use a software renderer when using software codecs\n\nThis mimics what is done in AwesomePlayer and MediaCodec -\nideally this logic perhaps should be moved into ACodec to\navoid having to replicate it in every caller.\n\nThis makes HLS and RTSP playback work in the emulator.\n\nChange-Id: I18027dc3e469889baaae3e1c4afb559de7d0f7d3\n"
    },
    {
      "commit": "c666b8f16310fc826471c0fb6ee3f7e4d3a2d067",
      "tree": "50aff85e062cf2016ed3a835a02350dc8e420635",
      "parents": [
        "aab58d138ab3baccbf1badd6cfda1de1bfc24681",
        "8ee02943b61e0a7dd78e5596720261b185a223d5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 14:11:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 14:11:46 2013 -0700"
      },
      "message": "am 8ee02943: am 1c7f35d1: Merge \"soundpool: allocate shared memory heap by client\" into klp-dev\n\n* commit \u00278ee02943b61e0a7dd78e5596720261b185a223d5\u0027:\n  soundpool: allocate shared memory heap by client\n"
    },
    {
      "commit": "3d00aa6de95fb46e36f2bab4e3facdf0b96acf06",
      "tree": "1ad12df4c11ca37280cbe6850eed9bff1e0a2f35",
      "parents": [
        "402dfba6dcd68f5fd8d8921f9751f3e47eb1449d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 09:53:27 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 11:59:59 2013 -0700"
      },
      "message": "soundpool: allocate shared memory heap by client\n\nCurrent SoundPool implementation allocates the shared memory heap\ncontaining decoded PCM samples in mediaserver process.\nWhen mediaserver process crashes, the shared memory heaps allocated by\nAudioCache cannot be mapped anymore in the new instance of mediaserver.\nThis causes a silent failure to end playback of new sounds because\nAudioFlinger believes the new AudioTracks are opened in streaming mode\nand not static mode: it sees a NULL shared memory pointer when the track\nis created.\n\nThe fix consists in allocating the memory heap in the client process. Thus\nthe heap is not lost when mediaserver restarts. The global memory usage is\nthe same as this is shared memory.\n\nAlso added a way to detect that a shared memory is passed when the track is\ncreated but cannot be mapped on mediaserver side.\n\nAlso fix a crash in SoundPool when ALOGV is enabled.\n\nBug: 10894793.\nChange-Id: Ice6c66ec3b2a409d75dc903a508b6c6fbfb2e8a7\n"
    },
    {
      "commit": "b5c682905d2735785bab6d7a27c131afbfe7650b",
      "tree": "81da87041939d507b4ba0015cf033d7c8c9ed6bc",
      "parents": [
        "9dbf87543b3a08fe39ba160494207f074294134c",
        "83774965fefc5d0315ec41641bdd99cf0a657462"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 16 16:04:21 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 16 16:04:21 2013 -0700"
      },
      "message": "am 83774965: am bc910e5c: Merge \"Fix hang\" into klp-dev\n\n* commit \u002783774965fefc5d0315ec41641bdd99cf0a657462\u0027:\n  Fix hang\n"
    },
    {
      "commit": "bc910e5c8d05f24531bd6b11379cf41cc73415ed",
      "tree": "48a82de7153143fd418c155207166e6e62eaa7c1",
      "parents": [
        "a099d1f6be3fbbb1af4c12b2ab627397f0826982",
        "ee08f7e36eeba80e005f9bdaebce635860a8f005"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 16 22:57:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 16 22:57:18 2013 +0000"
      },
      "message": "Merge \"Fix hang\" into klp-dev"
    },
    {
      "commit": "ee08f7e36eeba80e005f9bdaebce635860a8f005",
      "tree": "00fce1d20b3f272bdbe39095ce749f666a0eea9d",
      "parents": [
        "99bf6267f0a4e2c3153be49ced59ae164d55ea6d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 16 13:30:01 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 16 13:30:01 2013 -0700"
      },
      "message": "Fix hang\n\nSpecify that the surface is controlled by the app, to avoid a hang.\nb/10531761\n\nChange-Id: Idccc2c73aa3d368d8e7fbdc071ce36e2382efea4\n"
    },
    {
      "commit": "5ee1f4fe66d15e8554352829771bf27913ea0b14",
      "tree": "fed3950c27a17ebf9184b961198033c05f92fe59",
      "parents": [
        "1bcd8e9f74ac5c50a2888465aa38cc6f24eca997",
        "fcb7a2472bcb3c7985888acdb9905ba4e21c6bfe"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Sep 16 11:20:11 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 16 11:20:11 2013 -0700"
      },
      "message": "am fcb7a247: am a5652e9c: Merge \"Add FLAG_CAN_SEEK_BACKWARD and FLAG_CAN_SEEK_FORWARD see flags\" into klp-dev\n\n* commit \u0027fcb7a2472bcb3c7985888acdb9905ba4e21c6bfe\u0027:\n  Add FLAG_CAN_SEEK_BACKWARD and FLAG_CAN_SEEK_FORWARD see flags\n"
    },
    {
      "commit": "4b7069dac546ad21cf62ca6132d50ea41857d08e",
      "tree": "a692fbb194536dcd7ee4f8e7681e7a36143267d5",
      "parents": [
        "c728c580fc512b50604f33f1c4581c500062b245"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 11 12:52:43 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 11 17:58:54 2013 -0700"
      },
      "message": "Add FLAG_CAN_SEEK_BACKWARD and FLAG_CAN_SEEK_FORWARD see flags\n\nAlso update seek flag in NuPlayerDriver, otherwise MediaPlayer will\nget wrong flags.\n\nBug: 10676387\n\nChange-Id: Ice30f27a9a04e37b4718d26228a407fea8d9e4fc\n"
    },
    {
      "commit": "a664d6b45777efb8f8b7c8a391d785f6152fa8db",
      "tree": "f599782b97125b310a66a01d34399ac7d46502f8",
      "parents": [
        "36a8b33a23dca49c9617e97e22e5d67f7d25c268"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Sep 07 23:38:03 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Sep 07 23:38:03 2013 -0700"
      },
      "message": "HDCP: use getCaps() to query HDCP caps\n\nBug: 10609422\nChange-Id: I8bfbd761b58d5b333db38f5e3cea806abb04443c\n"
    },
    {
      "commit": "ec3acca4a75fc4adc076b56751124f507b419622",
      "tree": "d8e15b4acf4de74c3edcdad49f3528ca668fc2a1",
      "parents": [
        "4585e8f0ff47580fdb81ed8652bde32db1770050"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 03 14:35:37 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 03 16:02:35 2013 -0700"
      },
      "message": "wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\n\nBug: 10609422\nChange-Id: I005f1d04a4191b1503b5f3e895a98b8d6560c402\n"
    },
    {
      "commit": "ee7e77d55d510725a314d8ed36dc730c21af6173",
      "tree": "02b7cfa93dd77e7927b67cc6d85d865e3e6bd0c3",
      "parents": [
        "8271f1a2225a34a0748624786392213a746c56d7"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 28 16:40:41 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 28 16:40:41 2013 -0700"
      },
      "message": "fix MediaDrm.isCryptoSchemeSupported(uuid)\n\n1. Don\u0027t expect plugins to support an empty mimeType in isContentTypeSupported\n2. Move the cts test mock drm plugin to the cts tree so it is always used\n\nb/10528466\n\nChange-Id: I6023f6165b1e9d294986f7e5cd0896e056e376f1\n"
    },
    {
      "commit": "2484040e0f413989e4edbe26ba3bf71122382af6",
      "tree": "0a17a226282f38322b9761650a9536088096c657",
      "parents": [
        "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75",
        "dcb89b3b505522efde173c105a851c412f947178"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 23 19:13:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 19:13:28 2013 +0000"
      },
      "message": "Merge \"MediaPlayer: add listener for raw track data\" into klp-dev"
    },
    {
      "commit": "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75",
      "tree": "dce59b6f085880d667534b7190df11d1c52b6343",
      "parents": [
        "4b820b0e1fa069714b123fc35784541d0f94d267",
        "9cf69e0fc110f17c28e988ed0f9bf91abfaf710d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 22 23:08:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 22 23:08:10 2013 +0000"
      },
      "message": "Merge \"Add ability to test supported content types to MediaDrm\" into klp-dev"
    },
    {
      "commit": "9cf69e0fc110f17c28e988ed0f9bf91abfaf710d",
      "tree": "c5cb3fb67b26c852f8c7bea7e4eeb87952830842",
      "parents": [
        "75c16dde986e16ac5fd4d34b06b0cc6a90679866"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 21 11:59:23 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 22 09:27:35 2013 -0700"
      },
      "message": "Add ability to test supported content types to MediaDrm\n\nbug: 10244066\nChange-Id: I317f05b146db962c271893f6208890a5a6c396f1\n"
    },
    {
      "commit": "dcb89b3b505522efde173c105a851c412f947178",
      "tree": "eb89386fb07021a6527b35ea3d8ecf80584c73b7",
      "parents": [
        "1cb4e1661e4144cb188c2c79b89804fcb902fd19"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 06 09:44:47 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 19 10:53:52 2013 -0700"
      },
      "message": "MediaPlayer: add listener for raw track data\n\nBug: 10326117\n\nChange-Id: I2c0bdf8adc67b11f8dc633423bee66897548f181\n"
    },
    {
      "commit": "cbaffcffee6418d678806e63097c19fe26d48fe0",
      "tree": "21af7d5eab33df7c6487290014f29a83b525734c",
      "parents": [
        "b8689b31813f55cbc1bf8e9ca0d46a9ee113e38a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 14 18:30:38 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 15 16:04:58 2013 -0700"
      },
      "message": "Add MEDIA_STARTED/PAUSED/STOPPED events to media players\n\nThis is needed for the MediaTimeProvider java interface, so it does not\ncontinually poll for current media time.\n\nNote: NuPlayer and AwesomePlayer do not correctly handle stop (pause\ninstead), so for those we will signal PAUSED.\n\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nChange-Id: I3c61e1bda475f131323f475c18a42e3ec66c9ae1\nBug: 10326117\n"
    },
    {
      "commit": "d89532e133b881c7e0dac089333ad7642fc510f1",
      "tree": "ba12a120aaf59226926f7a585f8a0cbe2e25aba8",
      "parents": [
        "b1a270d1e926fb9a01b4265a7675ed0c2c8f4868"
      ],
      "author": {
        "name": "Richard Fitzgerald",
        "email": "rf@opensource.wolfsonmicro.com",
        "time": "Tue May 14 13:18:21 2013 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 09:30:34 2013 -0700"
      },
      "message": "libmediaplayerservice: offload playback support\n\nMain change is to how recycled tracks are used for gapless\nplayback. If we are playing offloaded tracks that can\u0027t be\nrecycled we don\u0027t open a new offloaded output until we have\nclosed the previous one. This is because offloaded tracks\nare a limited resource so we don\u0027t want to spuriously create\nunnecessary instances. If the tracks cannot be recycled\nthis means that the formats are incompatible and so the\nhardware most likely will also be unable to use the existing\noutput channel for the new track. If we already have the\nmaximum number of hardware offload channels open (which could\nbe only one) then creation of the next output would fail if\nwe attempted it while the previous output was still open.\n\nChange-Id: I4f5958074e7ffd2e17108157fee86329506730ea\nSigned-off-by: Eric Laurent \u003celaurent@google.com\u003e\n"
    },
    {
      "commit": "8060060217ff16cd67c8f6a15c649f44c343acf0",
      "tree": "fa0d2d4f680f2303a88e3bcfba2b897fc435e76f",
      "parents": [
        "9d7376a7a4910a61ee4e9b1ad94b125d157882cc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 18 14:36:18 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 18 15:11:50 2013 -0700"
      },
      "message": "ANetworkSession and ParsedMessage are now part of stagefright foundation.\n\nAlso fixes some bugs in ParseMessage and adds \"WebSocket\" mode to\nANetworkSession, something that\u0027s opt-in and should not affect existing clients\nof the API.\n\nChange-Id: I86d5748e0d818231d85d3590d86c2b41d4f8b1f1\n"
    },
    {
      "commit": "3a24dfc5b608d86e1989c2a56afa98aaae095541",
      "tree": "437d3a3ce7ddc59b531791918358f18b4fece73d",
      "parents": [
        "ee5e8d3e8dc61f8fb1fa725278d63802074c10c5",
        "d1eff5718510228503958e8fafa698c9e6a4a230"
      ],
      "author": {
        "name": "leozwang@google.com",
        "email": "leozwang@google.com",
        "time": "Wed Jul 17 21:14:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 17 21:14:37 2013 +0000"
      },
      "message": "Merge \"Output more detailed error message if loading library fails\""
    },
    {
      "commit": "d1eff5718510228503958e8fafa698c9e6a4a230",
      "tree": "0f4edc23c490ba584622ae8cd612301b43025753",
      "parents": [
        "ce177bb31493d3cd4450f9d4760fa1fd32ec6bf4"
      ],
      "author": {
        "name": "leozwang@google.com",
        "email": "leozwang@google.com",
        "time": "Sat Jul 13 21:52:50 2013 -0700"
      },
      "committer": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Wed Jul 17 21:12:44 2013 +0000"
      },
      "message": "Output more detailed error message if loading library fails\n\nBug: 9805979\n\nChange-Id: I77b19d6a65ff9fb72e7428ce79b117628e4c8658\n"
    },
    {
      "commit": "fb1fdc9d6603aa228362e7349451f6455c9849c2",
      "tree": "1caac6c881db81bcfedb596b292ce62ecbaf6a2c",
      "parents": [
        "551ababe67ce31778000d52958e53e1c56e1a294"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 10 17:03:19 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 10 17:08:15 2013 -0700"
      },
      "message": "Add comments\n\nChange-Id: Ifbf3a46a4183c8abc0feee1c588953ab10303cc1\n"
    },
    {
      "commit": "1545d35f871ff3527a716af659ddadebe3253548",
      "tree": "b54f893fe56f9fdf2dc9ed7718f050f302cc6635",
      "parents": [
        "0bc32ae1a8ef45f98101b78bfe64798875b569e3",
        "9f0e05978e236352fd2a4a7c6dce909755c36ead"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jul 08 11:27:52 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 08 11:27:52 2013 -0700"
      },
      "message": "am 9f0e0597: am 7266bc80: am ca7f1609: Merge \"Prevent double disconnects in RTSPSource\"\n\n* commit \u00279f0e05978e236352fd2a4a7c6dce909755c36ead\u0027:\n  Prevent double disconnects in RTSPSource\n"
    },
    {
      "commit": "9f0e05978e236352fd2a4a7c6dce909755c36ead",
      "tree": "539b172729d0a44025e5331c7a2fda6b1f86d0ae",
      "parents": [
        "9a25c012915f2209fff1479b246ae8eba38c3eff",
        "7266bc80850dc327e9f18c27b81613f959399630"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jul 08 11:25:34 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 08 11:25:34 2013 -0700"
      },
      "message": "am 7266bc80: am ca7f1609: Merge \"Prevent double disconnects in RTSPSource\"\n\n* commit \u00277266bc80850dc327e9f18c27b81613f959399630\u0027:\n  Prevent double disconnects in RTSPSource\n"
    },
    {
      "commit": "7266bc80850dc327e9f18c27b81613f959399630",
      "tree": "661b92b78a01707e05a62323b286132f8714b02f",
      "parents": [
        "47a1fe04637793f48d808261b1fac47acc3de1e1",
        "ca7f160921a4a1a5da32ebe8fab1067bd8998a1f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Jul 08 11:21:45 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 08 11:21:45 2013 -0700"
      },
      "message": "am ca7f1609: Merge \"Prevent double disconnects in RTSPSource\"\n\n* commit \u0027ca7f160921a4a1a5da32ebe8fab1067bd8998a1f\u0027:\n  Prevent double disconnects in RTSPSource\n"
    },
    {
      "commit": "69adec56fe13a2154cf9388c6e8725c6b6861b74",
      "tree": "049b4b7c7e497eea69f2f4bef3b22a62f78e2464",
      "parents": [
        "20ed5f444c149c49d0e599da09e5cec1e5cc6051",
        "9a25c012915f2209fff1479b246ae8eba38c3eff"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Jul 07 12:28:46 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jul 07 12:28:46 2013 -0700"
      },
      "message": "am 9a25c012: am eced745a: Merge \"Part of fix for TEE resource leaks when app crashes\" into jb-mr2-dev\n\n* commit \u00279a25c012915f2209fff1479b246ae8eba38c3eff\u0027:\n  Part of fix for TEE resource leaks when app crashes\n"
    },
    {
      "commit": "9a25c012915f2209fff1479b246ae8eba38c3eff",
      "tree": "af538ebd502f0d834f5e9a10799f3e508bdfa55b",
      "parents": [
        "ace2378c934b61fbd865b5ade9ff7d0df81dabe3",
        "eced745af7d2d27a8c45e04eb071d4fb30cd3e48"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Jul 07 12:26:16 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Jul 07 12:26:16 2013 -0700"
      },
      "message": "am eced745a: Merge \"Part of fix for TEE resource leaks when app crashes\" into jb-mr2-dev\n\n* commit \u0027eced745af7d2d27a8c45e04eb071d4fb30cd3e48\u0027:\n  Part of fix for TEE resource leaks when app crashes\n"
    },
    {
      "commit": "3d3f67f3afa45e6b49d85b20942ee8184a33c1a4",
      "tree": "ecf87485ed6235279de2022c056c0f370b2af8d5",
      "parents": [
        "a691ff3c03e38e148bbefed35ebb15e552a12613"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jul 03 15:38:58 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jul 03 16:23:39 2013 -0700"
      },
      "message": "Part of fix for TEE resource leaks when app crashes\n\nbug: 9672606\nChange-Id: I98cf65260d5e43d34e3897452f6f26ed2c89294e\n"
    },
    {
      "commit": "1ab85ec401801ef9a9184650d0f5a1639b45eeb9",
      "tree": "c3a39f141461642c3ac3c7f1370ca679d08d80e6",
      "parents": [
        "8f13428cb29a9b610a9e9a0f5fea437cd2d3f032"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 31 09:18:43 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 02 13:43:24 2013 -0700"
      },
      "message": "Include what is needed\n\nRemove old includes.\nHeader files only include other header files that they directly need themselves.\n\nChange-Id: Ic471386808d9f42ea19ccbd59cb50a5f83a89dd0\n"
    },
    {
      "commit": "0ad03bc59d090a0455f858d2f629834c105f6f37",
      "tree": "86eba1233c510ecc2217ae7d49c1780834d87c6e",
      "parents": [
        "a9aa6baa5d86fc1a5bd37fc636d766d9e3ad2507"
      ],
      "author": {
        "name": "Fredrik Rosin",
        "email": "fredrik.rosin@sonymobile.com",
        "time": "Wed Mar 06 13:42:53 2013 +0100"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Mon Jul 01 13:14:47 2013 +0200"
      },
      "message": "Prevent double disconnects in RTSPSource\n\nPrevent a null pointer from occuring by checking that we are not\nalready disconnected before performing a disconnect, in case\nmultiple disconnects have been issued.\n\nChange-Id: Ib88800cd246086fd57f77d10748d41b1aefe2084\n"
    },
    {
      "commit": "f761cec9aaca76bb84264f3666764d24a9c243e2",
      "tree": "6fc6475ee51c767b214544c8f91384cbd359719e",
      "parents": [
        "226939c6d250d7d90f84a8667edde7efb879afc9",
        "903871da7a7c71b8718133e60e2f0835837b5f3f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Jun 28 10:48:43 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 28 10:48:43 2013 -0700"
      },
      "message": "am 903871da: am 83790fcc: am bdf33c98: Merge \"Fix compilation warning: incorrect format specifier for type \\\u0027ssize_t\\\u0027.\"\n\n* commit \u0027903871da7a7c71b8718133e60e2f0835837b5f3f\u0027:\n  Fix compilation warning: incorrect format specifier for type \u0027ssize_t\u0027.\n"
    },
    {
      "commit": "83790fcce4f5cda1e7c89f1cbed452426502f227",
      "tree": "c7636bc7a6b9f7597ebe6dcf91a377448e8ec950",
      "parents": [
        "3a4ff0b8bf464c9c286d63326bea42609527051e",
        "bdf33c98912090176183d3e9b9a9217dbbdca6da"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Jun 28 09:30:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 28 09:30:58 2013 -0700"
      },
      "message": "am bdf33c98: Merge \"Fix compilation warning: incorrect format specifier for type \\\u0027ssize_t\\\u0027.\"\n\n* commit \u0027bdf33c98912090176183d3e9b9a9217dbbdca6da\u0027:\n  Fix compilation warning: incorrect format specifier for type \u0027ssize_t\u0027.\n"
    },
    {
      "commit": "ad3af3305f024bcbbd55c894a4995e449498e1ba",
      "tree": "2e242d4c49cce9faefc28665c6ee63a2a5da170c",
      "parents": [
        "7919fa2c33b1fa7f5e49b2188d671bfe519c231e"
      ],
      "author": {
        "name": "Richard Fitzgerald",
        "email": "rf@opensource.wolfsonmicro.com",
        "time": "Mon Mar 25 16:54:37 2013 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 27 17:16:24 2013 -0700"
      },
      "message": "Public API changes for audio offload support.\n\nNOTE: this does _not_ include all private member variables added\nto classes as part of offload support. Only public/protected functions\nand stubs functions/variables needed to make the changes buildable.\n\n- isOffloadSupported() added to audio policy service\n    A stub implementation is required to build, this always returns false\n- setParameters() added to IAudioTrack\n    A stub implementation is required to build, this always returns\n    INVALID_OPERATION\n\n- CBlk flag for stream end\n\n- Change AudioSystem::getRenderPosition() to take an audio_output_t\n    so caller can specify which output to query\n\n- Add AudioSystem::isOffloadSupported()\n    This is fully implemented down to the AudioFlinger function\n    AudioPolicyServer::isOffloadSupported() which is just a stub\n    that always returns false.\n\n- Add EVENT_STREAM_END to AudioTrack interface.\n    STREAM_END is used to signal when the hardware has actually finished\n    playing all the data it was sent.\n\n- Add event type enumeration to media player interface AudioSink callbacks\n    so that the same callback can be used to handle multiple types of\n    event. For offloaded tracks we also have to handle STREAM_END and\n    TEAR_DOWN events\n\n- Pass audio_offload_info_t to various functions used for opening outputs,\n    tracks and audio players. This passes additional information about the\n    compressed stream down to the HAL when using offload.\n    For publicly-available APIs this is an optional parameter (for some of\n    the internal and low-level APIs around the HAL interface it is mandatory)\n\n- Add getParameters() and setParameters() API to AudioTrack\n    Currently dummy implementations.\n\n- Change AudioPlayer contructor so that it takes a set of bitflags defining what\n    options are required. This replaces the original bool which only specified\n    whether to use deep buffering.\n\n- Changes to StageFright class definition related to handling tearing-down of\n    an offloaded track when we need to switch back to software decode\n\n- Define new StageFright utility functions used for offloaded tracks\n    Currently dummy implementations.\n\n- AudioFlinger changes to use extended audio_config_t.\n    Fills in audio_offload_info_t member if this info is passed in when\n    opening an output.\n\n- libvideoeditor changes required to add the new event type parameter\n    to AudioSink callback functions\n\n- libmediaplayerservice changes required to add the new event type parameter\n    to AudioSink callback functions\n\nChange-Id: I3ab41138aa1083d81fe83b886a9b1021ec7320f1\nSigned-off-by: Richard Fitzgerald \u003crf@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Eric Laurent \u003celaurent@google.com\u003e\n"
    },
    {
      "commit": "7d409691ed61f96bac6672b59f368cd3cc8ea2d8",
      "tree": "03efbb6dff1fbad998859225e3ae49901211d417",
      "parents": [
        "d74a9ee83fd6e033fd2260ca3777390d7e5f817a"
      ],
      "author": {
        "name": "Scott Fan",
        "email": "fancp2007@gmail.com",
        "time": "Sun Apr 28 10:13:54 2013 +0800"
      },
      "committer": {
        "name": "Scott Fan",
        "email": "fancp2007@gmail.com",
        "time": "Thu Jun 27 07:06:15 2013 +0000"
      },
      "message": "Fix compilation warning: incorrect format specifier for type \u0027ssize_t\u0027.\n\nwarning: format \u0027%ld\u0027 expects argument of type \u0027long int\u0027,\nbut argument 7 has type \u0027ssize_t {aka int}\u0027 [-Wformat]\n\nChange-Id: I823835a26320a3abb82f8dff9fbe82e5132e7556\nSigned-off-by: Scott Fan \u003cfancp2007@gmail.com\u003e\n"
    },
    {
      "commit": "2799d743ee2ae5a25fe869a7f9c052acc029559f",
      "tree": "5cab5ff06f7cae0025b93fdcd549cfb2ec72b755",
      "parents": [
        "7c684c622110af460025eff85082030947278430"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 30 14:33:29 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 03 11:28:36 2013 -0700"
      },
      "message": "Use sp\u003cAudioTrack\u003e instead of raw AudioTrack *\n\nThis change prepares for the new implementation of AudioTrack client, which\nwill require clients to use only sp\u003cAudioTrack\u003e, not raw AudioTrack *.\nA raw delete will cause a race condition during AudioTrack destruction.\n\nAudioTrack was made a RefBase by commit b68a91a70bc8d0d18e7404e14443d4e4020b3635\non 2011/11/15, when it was needed by OpenSL ES (for the callback protector).\nAt that time, the only other client that was also converted from\nAudioTrack * to sp\u003cAudioTrack\u003e was android.media.AudioTrack JNI in\nproject frameworks/base (file android_media_AudioTrack.cpp).\n\nDetails:\n * Use .clear() instead of delete followed by \u003d NULL.\n * ALOG %p need .get().\n * sp\u003c\u003e don\u0027t need to be listed in constructor initializer, if initially 0.\n * Use \u003d\u003d 0 for sp\u003c\u003e vs \u003d\u003d NULL for raw pointers.\n * Use if (sp !\u003d 0) instead of if (raw).\n\nChange-Id: Ic7cad25795d6e862e112abdc227b6d33afdfce17\n"
    },
    {
      "commit": "7c684c622110af460025eff85082030947278430",
      "tree": "3e29ab57fde237f80242d1c479968126d757368f",
      "parents": [
        "faca94d1773afb50fb8aa4eb00ca213d7c9d2bec",
        "f9bb8358e454be6dc88403171db7e0e182407f17"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jun 03 08:48:27 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 03 08:48:27 2013 -0700"
      },
      "message": "am f9bb8358: am b7319a7e: Update HTTP proxy configuration for all media playback inside stagefright.\n\n* commit \u0027f9bb8358e454be6dc88403171db7e0e182407f17\u0027:\n  Update HTTP proxy configuration for all media playback inside stagefright.\n"
    },
    {
      "commit": "f9bb8358e454be6dc88403171db7e0e182407f17",
      "tree": "17ae0e6c7d2b042cb5b6e444dc22ebce81340cf8",
      "parents": [
        "268f5ccf7b8adf80f18ef8a9dac46a0813cec19f",
        "b7319a7eb0a06ef4fd3a0c9157ee63e637ad7aa1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jun 03 08:46:18 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 03 08:46:18 2013 -0700"
      },
      "message": "am b7319a7e: Update HTTP proxy configuration for all media playback inside stagefright.\n\n* commit \u0027b7319a7eb0a06ef4fd3a0c9157ee63e637ad7aa1\u0027:\n  Update HTTP proxy configuration for all media playback inside stagefright.\n"
    },
    {
      "commit": "b7319a7eb0a06ef4fd3a0c9157ee63e637ad7aa1",
      "tree": "6dc90cde609f708f45ae08af2bdc5f9cd2df4bb3",
      "parents": [
        "41688da226e91c97ea3b2fe096044e1e5b0520bc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 29 14:20:52 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 31 15:31:56 2013 -0700"
      },
      "message": "Update HTTP proxy configuration for all media playback inside stagefright.\n\nChange-Id: Ie0dd00045aba668d8b49da73224e7a7c9c04f69b\nrelated-to-bug: 8873723\n(cherry picked from commit 2704965b8a1ff3b7450ff58ccecf86d8ec688c40)\n"
    },
    {
      "commit": "14f7672b5d450ed26a06fd3bb3ce045ea78b11b2",
      "tree": "1730ace584297a64946ed5dccc0ca596c2570d21",
      "parents": [
        "fbb70ce416b193655fbe5ff7f6c8676050bdf524"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 15 09:04:18 2013 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 31 10:30:45 2013 -0700"
      },
      "message": "New HLS implementation supporting independent stream sources, audio-only streams\n\nand more.\n\nChange-Id: Icfc45a0100243b2f7a14a9e65696be45b67d6495\n"
    },
    {
      "commit": "308bcaa44e578279e61be32b572fdb0b11b1e4c7",
      "tree": "3b76d5e38e37ca9f59c689bfb6aef11a75a35249",
      "parents": [
        "6d101328e34557fa251b7d52d4d8dbf59620d099"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri May 03 21:54:17 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri May 17 16:18:28 2013 -0700"
      },
      "message": "wifi-display: add support for metadata mode on encoder output\n\npass buffer_handle_t from encoder output to HDCP encryptor input\n\nBug: 8968123\n\nChange-Id: Iea8007ce568641e213fd2e3cf6947a6f7a95746c\n"
    },
    {
      "commit": "d84c79bf628d0f96189429add9c8b0fbb7acace9",
      "tree": "f56fd9f5388430978309fe894e492b740863fbf6",
      "parents": [
        "26e36ff8689d6efc9d54db43cfbbb317f383079a",
        "c34e097efc5eeefe977972b08a42509e8aa3ccc5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 16:54:07 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 25 16:54:07 2013 -0700"
      },
      "message": "am dd309b97: Merge \"Handle the case where an asynchronous prepare was initiated and then\" into jb-mr2-dev\n\n* commit \u0027dd309b97f3e30cb8ab30892b4bf6b5d824853a86\u0027:\n  Handle the case where an asynchronous prepare was initiated and then\n"
    },
    {
      "commit": "75f912ca9d8a03c91a421b80d96b81d87ef79d68",
      "tree": "f56fd9f5388430978309fe894e492b740863fbf6",
      "parents": [
        "4fcff8859393adce884ea958c66d471a4c36b55f",
        "dd309b97f3e30cb8ab30892b4bf6b5d824853a86"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 16:54:07 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 25 16:54:07 2013 -0700"
      },
      "message": "am dd309b97: Merge \"Handle the case where an asynchronous prepare was initiated and then\" into jb-mr2-dev\n\n* commit \u0027dd309b97f3e30cb8ab30892b4bf6b5d824853a86\u0027:\n  Handle the case where an asynchronous prepare was initiated and then\n"
    },
    {
      "commit": "5a7501304d815552c3bfaee8789821e4884d073b",
      "tree": "944512c454d0add19a0ff4036299495e3fd32027",
      "parents": [
        "159ef7310215bdf86f7d64a797cce3ff61951a2c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "message": "Handle the case where an asynchronous prepare was initiated and then\n\nthe mediaplayer was reset.\n\nChange-Id: Ib241747c5dc002b88a3854569c1f8340b2a8ef41\nrelated-to-bug: 8688986\n"
    },
    {
      "commit": "b5f28d4749b898d92fe5e56236b417e37b6fe84f",
      "tree": "944512c454d0add19a0ff4036299495e3fd32027",
      "parents": [
        "7f86d98317843838c4a5248c733bf95f9574fcab"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 25 15:11:19 2013 -0700"
      },
      "message": "Handle the case where an asynchronous prepare was initiated and then\n\nthe mediaplayer was reset.\n\nChange-Id: Ib241747c5dc002b88a3854569c1f8340b2a8ef41\nrelated-to-bug: 8688986\n"
    },
    {
      "commit": "6bc71cac3619b0a5bb70d87abded691f3f929e3b",
      "tree": "c4668ec4594fc9a651d95d692a7a2956bf8f4fcb",
      "parents": [
        "3ba2aea1588438d0768ed48fc2749a2034eb3a2b",
        "aa47eb2e0560ade9e0d899e72d733bb6764973b6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 24 09:52:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 24 09:52:49 2013 -0700"
      },
      "message": "am 628a8c0e: Merge \"fix a race condition of MediaPlayerServce::Client::mClient\"\n\n* commit \u0027628a8c0ed91531468f5c615fea8745f63cc812aa\u0027:\n  fix a race condition of MediaPlayerServce::Client::mClient\n"
    },
    {
      "commit": "2c2345cf7e163f532f32597051f579cdb0e36bec",
      "tree": "c4668ec4594fc9a651d95d692a7a2956bf8f4fcb",
      "parents": [
        "e55951df62a777485f437bf070a5149caf62955f",
        "628a8c0ed91531468f5c615fea8745f63cc812aa"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 24 09:52:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 24 09:52:49 2013 -0700"
      },
      "message": "am 628a8c0e: Merge \"fix a race condition of MediaPlayerServce::Client::mClient\"\n\n* commit \u0027628a8c0ed91531468f5c615fea8745f63cc812aa\u0027:\n  fix a race condition of MediaPlayerServce::Client::mClient\n"
    },
    {
      "commit": "aa47eb2e0560ade9e0d899e72d733bb6764973b6",
      "tree": "6279ecc72189f855a6e247402e668af1b6c0a59f",
      "parents": [
        "6db76e8b8f561355198fc91dd95498a59ad38a20",
        "dcfefde6be8f9f33bbd2b3546f3be946d958d677"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 24 15:46:11 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 15:46:13 2013 +0000"
      },
      "message": "Merge \"fix a race condition of MediaPlayerServce::Client::mClient\""
    },
    {
      "commit": "628a8c0ed91531468f5c615fea8745f63cc812aa",
      "tree": "dd257b4ed76b838ece43422ff06c2a1b3877259b",
      "parents": [
        "3030f344e77d14cf688c34f79c83a045c888825d",
        "dcfefde6be8f9f33bbd2b3546f3be946d958d677"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 24 15:46:11 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 24 15:46:13 2013 +0000"
      },
      "message": "Merge \"fix a race condition of MediaPlayerServce::Client::mClient\""
    },
    {
      "commit": "ca6867fbac7a69c4d7a253917ecf6d4abc18d49c",
      "tree": "e52f4f2870cc4a0c58743000d88a10f410c5247f",
      "parents": [
        "8461772f46769a384ea87b42848e2d77de529332"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 10:54:03 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 12:52:33 2013 -0700"
      },
      "message": "Fix a typo that would cause us not to shutdown/flush the decoders in\n\nsome cases.\n\nrelated-to-bug: 8630032\n\nChange-Id: I8e94b53b34e137e827e9630c65f3252ea91e4ebd\n"
    },
    {
      "commit": "da9740e63a835e610519bd235be9137d74b6d409",
      "tree": "db7e39018b0f9968994929ac178789b12d214854",
      "parents": [
        "f5c0211057be7a1d32f356d4162a84cce281394d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 10:54:03 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 16 12:52:33 2013 -0700"
      },
      "message": "Fix a typo that would cause us not to shutdown/flush the decoders in\n\nsome cases.\n\nrelated-to-bug: 8630032\n\nChange-Id: I8e94b53b34e137e827e9630c65f3252ea91e4ebd\n"
    },
    {
      "commit": "602f5bbd7596ec3fe447fde4329d5d4f0b370835",
      "tree": "15871fed5f74c20a01c45e1aa370f75be9ad9a00",
      "parents": [
        "474c6539e3592aece37616d0b39ef008b61260a0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "message": "Guard against mLooper \u003d\u003d NULL.\n\nChange-Id: I01aa0e47b55d0dffe34525edf9f055a5cb4dc70f\nrelated-to-bug: 8620223\n"
    },
    {
      "commit": "a68e7b98361692d4120bf99fa5dc18cd93673130",
      "tree": "98a10087c0fc8862b753642e52d0ac8063f09b1d",
      "parents": [
        "5ce9c299a64a1568165fc66adb2cf68d89198a90"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 15 16:18:56 2013 -0700"
      },
      "message": "Guard against mLooper \u003d\u003d NULL.\n\nChange-Id: I01aa0e47b55d0dffe34525edf9f055a5cb4dc70f\nrelated-to-bug: 8620223\n"
    }
  ],
  "next": "2070254f241f52cadb69bc2323f56df72704f1ca"
}
