)]}'
{
  "log": [
    {
      "commit": "42057ce1890b2be250b95f56734a47b93c8ad537",
      "tree": "7bfbe8147243430c306546b6a7e5caaa1e94d9cc",
      "parents": [
        "df0b56ba22cc201e535a2efc2245214355b6adf2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 23 12:15:57 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 08 09:30:45 2019 -0700"
      },
      "message": "Split datasource out of libstagefright\n\ninto libdatasource, which contains:\n  DataSourceFactory\n  (Clear)FileSource\n  (Clear)MediaHTTP\n  DataURISource\n  HTTPBase\n  NuCachedSource2\n\nThis is needed to break a circular dependency in an upcoming CL.\n\nTest: build, boot\n\nChange-Id: I34d9937235c78f18f51b18945342a0743e209577\n"
    },
    {
      "commit": "37d73d1502db31e3542f1ce4de5c7cbed8d1e174",
      "tree": "979cc26d7ee3343a662bc742587c1617a8390e68",
      "parents": [
        "a308287ea13cbab40ad6892be20b1253b83c0e36"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 12:49:09 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 15:18:12 2018 -0800"
      },
      "message": "Remove unused libraries from various media libraries\n\nTest: build\nChange-Id: I3bfb70a6ed3fe8f0e1683d456156517f8b992a33\n"
    },
    {
      "commit": "b8d79f41f8ad91474bfdc3e8409b2803ea09bf3e",
      "tree": "ec556d1791c5095ab564504f1f794b435b4eb3e9",
      "parents": [
        "fec151edf5e525c8d8f2a448d1e080d90b63e3a6"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Nov 01 17:43:20 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Nov 01 17:52:56 2018 -0700"
      },
      "message": "MediaPlayer2: remove libnetd_client dependency.\n\nIn MediaPlayer2, we don\u0027t need to call setNetworkForUser\nsince the framework already handles data usage billing\nfor application processes.\n\nTest: build\nBug: 112767419\nChange-Id: I0d4464f7ac024e0a0cf41e1d5cc97372c3e37017\n"
    },
    {
      "commit": "69d3d8a9540b0da787ea0beccad2517f057dd54d",
      "tree": "d8a91e3ee2298b35c3aad167a4f5073225aeba3a",
      "parents": [
        "953c59c51da938fdcaf3801de89edb736c249c6f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Mar 07 13:20:01 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Apr 06 13:24:12 2016 -0700"
      },
      "message": "Expand mediaextractor dumpsys\n\nBug: 22775369\nChange-Id: I3366a52ba7a00d1685a2211465f2f18f143d0efc\n"
    },
    {
      "commit": "ee4e1b1a63758941460ae79a064249d3a5189443",
      "tree": "d27f03a73170da9cce96b6eae5b2ecd874eace22",
      "parents": [
        "2170233c49e50f3986cdc4f726016d6003cb5b8e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 13:46:19 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 13:46:43 2015 -0700"
      },
      "message": "stagefright: warnings be gone, some are now errors, use clang\n\nChange-Id: I81f438ae444f04c12ae27ae4ef6d073033de172c\n"
    },
    {
      "commit": "358e71747a4707f9429b8565a05482c1f68d0ed3",
      "tree": "edc759e31576e30b496d908cf88df582477e7b3e",
      "parents": [
        "b9a23184272a75f1585e8dd64eeccc3a3e621d5f"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Mar 09 09:08:15 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Mar 09 12:54:04 2015 -0700"
      },
      "message": "do not do bandwidth estimation if total data downloaded is too small\n\nbug: 19656539\n\nChange-Id: I0ab9baad31e8953224a37d5aaf816e44780191c0\n"
    },
    {
      "commit": "a93fd2be99d21629bed504b9b7df035fc2f54562",
      "tree": "bacc1924137d3e0e749a1ba47756f3c80eaa1718",
      "parents": [
        "9aff25fb41f516ac26f9d1983a25402909f1e77a"
      ],
      "author": {
        "name": "Leena Winterrowd",
        "email": "lenhardw@codeaurora.org",
        "time": "Thu Dec 04 14:03:03 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Jan 28 21:52:09 2015 -0800"
      },
      "message": "stagefright: httplive: Decouple block size from bandwidth estimate\n\nA very small block size in PlaylistFetcher can lead to framework\noverhead and difficulty streaming high bitrate content, but since\nHTTPBase keeps a constant history of the past 100 HTTP reads, the\nblock size directly affects bandwidth estimation and in turn,\nswitching latency.\n\nAdd setBandwidthHistorySize() to HTTPBase to allow setting the\nhistory size for bandwidth estimation. Call this within LiveSession\nbased on the current block size to ensure that the number of bytes\nused for estimating bandwidth does not change if the block size is\nchanged in PlaylistFetcher.\n\nSince a single TCP/IP packet can contain up to 64k of data, increase\nthe block size in PlaylistFetcher from 2k to lcm(188, 1024) or 47k to\navoid inaccuracies in read timings due to up to a comparable 47 reads\nfrom the same locally-cached packet instead of from the network.\n\nAlso make HTTPBase::addBandwidthMeasurement() virtual to allow\nbandwidth estimation extensions that do not rely on a history list.\n\nBug: 18821145\nChange-Id: I5f957be01f5346e74cfb7eeb150ca4b397ad5798\n"
    },
    {
      "commit": "f0d689934e70d3e5b3784265e890377db04c7c1d",
      "tree": "92a7f9bf2304a7b1ced4e34c7cca6ddc569b2e55",
      "parents": [
        "c84bc78d4244987268cbe621cecdfb72cbd48dc7"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Jan 28 21:38:38 2015 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Jan 28 21:52:09 2015 -0800"
      },
      "message": "Revert \"HLS: QCom enhancements\"\n\nThis is to restore patch attributions\n\nThis reverts commit f580806d893c4631f5324ff0af5c2db68a40ef42.\n\nBug: 18821145\nChange-Id: Idc49385fffccfde2a3915388fe3fe4e2b740d787\n"
    },
    {
      "commit": "f580806d893c4631f5324ff0af5c2db68a40ef42",
      "tree": "bcb818e65e7702333bfb70103b63cf19ec90455f",
      "parents": [
        "5886252a7b08fb5c5d8829443e56a63956986148"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Dec 22 11:46:50 2014 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Dec 22 11:50:26 2014 -0800"
      },
      "message": "HLS: QCom enhancements\n\nThis commit consists of:\n\nhttp://go/pag/c/188753 Add NULL check for empty playlist\nhttp://go/pag/c/188754 Fix deadlock for low duration clips\nhttp://go/pag/c/188757 Create a copy of last enqueued metadata\nhttp://go/pag/c/188755 Propagate target duration to LiveSession\nhttp://go/pag/c/188762 Decouple block size from bandwidth estimate\nhttp://go/pag/c/188756 Reduce memcpy calls for chunked content\nhttp://go/pag/c/188758 Dont resume if we have almost fetched till stop time\n\nBug: 18821145\nChange-Id: I7fd650999c6c50bbadffd65adee9020e669dfe62\n"
    },
    {
      "commit": "8e6912423c3be3fc2f4bab8ac815f0dce075ded8",
      "tree": "663cec66b2cead18e0683ab749062d94a51188b8",
      "parents": [
        "bb37e1ce90fe46963512a8dfa5f2f9a974a2424f"
      ],
      "author": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Fri Jul 11 17:37:32 2014 -0700"
      },
      "committer": {
        "name": "Sreeram Ramachandran",
        "email": "sreeram@google.com",
        "time": "Fri Jul 11 17:45:53 2014 -0700"
      },
      "message": "Use a better and more direct API to mark a socket as if it were a user\u0027s.\n\nChange-Id: If525ee259b74314191d1913f7c2a3e828e05c38f\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": "5908f88a7e45380a9b0d71a3b1ea535d76c420b3",
      "tree": "b7b332e961fd8ecbe485f6811680f5e05f1f4ce5",
      "parents": [
        "ce177bb31493d3cd4450f9d4760fa1fd32ec6bf4"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Mon Jul 15 21:17:03 2013 -0700"
      },
      "committer": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Fri Jul 19 15:15:35 2013 -0700"
      },
      "message": "Add routing sockets for the requesting user\n\nMediaserver sockets are now routed as if the connection was in the\nrequesting app in per user routing.\n\nChange-Id: I60f4649c3c4145a65264b54c1aa2c6c7741efaba\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": "bea455c8e4a230cc5aedc9df33e1ba97c64cec5f",
      "tree": "df728643d29e66431b4d768887c55ce5bbf09e93",
      "parents": [
        "fea3699c6921f50f404b6285d588894cee63d85f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 15 13:56:18 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 15 17:08:48 2012 -0700"
      },
      "message": "libstagefright: dynamically load libstagefright_chromium_http\n\ndlopen libstagefright_chromium_http to allow it to be on the platform\nside of the pdk without getting overwritten during a pdk fusion build.\n\nChange-Id: I391e81d98beab165c3313bc8a71bb370ebb8584d\n"
    },
    {
      "commit": "29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47",
      "tree": "3bdafe4b02fe36f6ee29c3170f0b0d2799bebf86",
      "parents": [
        "d709ca9c6a0fa1c8f40cbe624a119398643c5087"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "df64d15042bbd5e0e4933ac49bf3c177dd94752c",
      "tree": "ff04eb3e1a1ce8c8d8559b93a438f278d984aa87",
      "parents": [
        "b8a805261bf0282e992d3608035e47d05a898710"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "a23456b306f35b9ecf973bf5818ca39295e9e029",
      "tree": "306cdb8f5f84adc84f2ecf7e5a34c80d988b9818",
      "parents": [
        "ea7c2fea6a031d37270cb5b22b432729626b266d"
      ],
      "author": {
        "name": "Ashish Sharma",
        "email": "ashishsharma@google.com",
        "time": "Thu Jul 07 17:57:05 2011 -0700"
      },
      "committer": {
        "name": "Ashish Sharma",
        "email": "ashishsharma@google.com",
        "time": "Fri Aug 05 12:58:14 2011 -0700"
      },
      "message": "Network traffic accounting for chromium stack support in mediaserver.\n\n        - Atribute network activity to uid calling the mediaplayer\n        - Enables logging of chromium network stack in logcat\n\nChange-Id: I2d28c8392248a056b3cee305dd4d4475ebba4337\n"
    },
    {
      "commit": "dab718bba3945332dc75e268e1e7f0fe2eb91c4a",
      "tree": "a1c5582fc94961c13093197f5f728ae7194c931e",
      "parents": [
        "42e549e4ab54802d788c43e3a04a85b7a1a95e97"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 13 15:45:01 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 13 15:45:01 2011 -0700"
      },
      "message": "Remove legacy http support from stagefright, chromium is the new hotness.\n\nChange-Id: I6725d42d38b91e6a1cbca43174870f445aeb3d99\n"
    },
    {
      "commit": "9b80c2bdb205bc143104f54d0743b6eedd67b14e",
      "tree": "7a035b1bbc67096fa775d41544f420a5eb6e0487",
      "parents": [
        "cebcdaef5b559f4db2a9d8b305d9d7da03525b62"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jun 30 15:47:02 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 01 13:18:43 2011 -0700"
      },
      "message": "Charge network traffic to the uid of the process using the MediaPlayer.\n\nChange-Id: I2bcb54b8232afd3fc7ee16289f37c7a7b3f23067\nrelated-to-bug: 4517282\n"
    },
    {
      "commit": "5b1b8a93a07326f1cbc627f09e02988375189e0a",
      "tree": "1da7ba8c401fb96b4de5fab790fba8e51eea78f6",
      "parents": [
        "65580f9adf6c4d98449ad0716488f9fe3869aa5a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 25 19:37:03 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 31 15:23:25 2011 -0700"
      },
      "message": "Send estimated bandwidth value as informational event when cache fetcher pauses\n\no Application can make informed decision about the available network bandwidth\n  when cache fetcher pauses.\n\no Application can also adjust how frequently the bandwidth is estimated within\n  a range from one second to one minute.\n\nChange-Id: I90068001343e79da1886de03c565537787e1580b\n"
    },
    {
      "commit": "34fba6695fe1b55710baef561785caa0486654fb",
      "tree": "32913423c67a2a767e79a3aee84c11c467ece1b0",
      "parents": [
        "884d064fbf7f45f8089abd7d87bdca5d325cc2ab"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 11 08:47:51 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 11 10:07:19 2011 -0800"
      },
      "message": "Only use ChromiumHTTPDataSource if webkit was built with chromium support.\n\nChange-Id: I9ce16f4aae35c61c9fb92fefc2a7c72537631cba\n"
    },
    {
      "commit": "1156dc913a5ba7b2bc86489468d4914430f03d14",
      "tree": "351803a481df1784b789fdcdfa13cbc9b30a0a12",
      "parents": [
        "271151e65fdc289514317b6e4e1b8805e6c647e1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 08 15:59:28 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 09 10:14:46 2011 -0800"
      },
      "message": "An HTTP datasource for stagefright using the chromium code.\n\nUse of this new datasource is now the default unless overwritten by\n\nadb shell setprop media.stagefright.use-chromium false\n\nChange-Id: I156a8eb9a1fff1cb537b4aec6cf3e8e6052be81e\n"
    }
  ]
}
