)]}'
{
  "log": [
    {
      "commit": "f3e80dddd7376aa9deeb27de25e1d50030a2ad98",
      "tree": "a3ebf2e96fa0bb9b0375281692adf48333bca468",
      "parents": [
        "d3af4265dca4c8ebcead5376f1c73a5dafc34778"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 10 16:55:38 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 11 14:45:27 2014 -0700"
      },
      "message": "Offer a type-safe album art interface.\n\nBug: 15514223\nChange-Id: Iddfc33a00e6cd3779ca09c01a55f62b151f6ec95\n"
    },
    {
      "commit": "e53b9ead781c36e96d6b6f012ddffc93a3d80f0d",
      "tree": "4bcde0bc9a797851ec1bee4f630c8c4f0735f623",
      "parents": [
        "b87396f9ebabbb7b47683bceca96cbe635a1ca00"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 16:29:55 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 11:09:47 2012 -0700"
      },
      "message": "Whitespace and indentation\n\nFix indentation to be multiple of 4.\nMake it easier to search:\n  sp\u003c not sp \u003c to\n  \"switch (...)\" instead of \"switch(...)\" (also \"if\" and \"while\")\nRemove redundant blank line at start or EOF.\nRemove whitespace at end of line.\nRemove extra blank lines where they don\u0027t add value.\n\nUse git diff -b or -w to verify.\n\nChange-Id: I966b7ba852faa5474be6907fb212f5e267c2874e\n"
    },
    {
      "commit": "90bebef5669a9385c706b042d146a31dca2e5d9b",
      "tree": "a60c6383825eb3ed02493036605391d015732190",
      "parents": [
        "98ec94c5854daccc3474758524e7f4adfe535ce0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 27 15:24:38 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 08 17:21:49 2012 -0800"
      },
      "message": "No newline or space at end of ALOG format string\n\nChange-Id: I0bef580cbc818cb7c87aea23919d26f1446cec32\n"
    },
    {
      "commit": "5ff1dd576bb93c45b44088a51544a18fc43ebf58",
      "tree": "c002dcda87f08329197b01395539bd25f10ca737",
      "parents": [
        "8a08dcc0a5de19a904e77d5f31bed3dff9a59890"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 10:07:54 2012 +0000"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/157065\n\nBug: 5449033\nChange-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69\n"
    },
    {
      "commit": "b8a805261bf0282e992d3608035e47d05a898710",
      "tree": "7a43908b8e936ac1f30eef0542b40d667c47aa23",
      "parents": [
        "94023fa6744e24f26f0aba1699ec278649bd66df"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 03 22:38:27 2012 +0000"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298\n"
    },
    {
      "commit": "3856b090cd04ba5dd4a59a12430ed724d5995909",
      "tree": "a24e4c98fa6049fd8085826be838000f9a67e39b",
      "parents": [
        "1d2acaffde56ad79e6e96f228d7857863462397c"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 26 09:57:54 2011 +0100"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/143865\n\nBug: 5449033\nChange-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a\n"
    },
    {
      "commit": "fb6f03425a791dcc4188462c860becf6ca6be4ea",
      "tree": "e21afb360622f19748a874f609d8c09a3804d809",
      "parents": [
        "618b58c4237359328b06371d9d6e855d2e6ac42c"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Sep 07 23:55:27 2011 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Sep 09 15:36:42 2011 -0700"
      },
      "message": "Make MediaScanner skip certain directories\n\nThe list of directories to skip are configurable via setprop.\nThe main motivation is that some test data folder takes long time\nto scan, and media scanner may compete for CPU time against perf\ntests therefore skewing the results.\n\nBug: 5263115\nChange-Id: I568213e2a4babf6033021c1d336ef0347c0e3315\n"
    },
    {
      "commit": "7188e55f54a43c55fd6b96454720c447f1dc454e",
      "tree": "ce77a06ad12fc66ce180fdbf882c011393d472d9",
      "parents": [
        "50d42da58a88dcdb082cff079766af71c0871470"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 20 16:38:43 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 20 17:33:13 2011 -0700"
      },
      "message": "Untangle MediaScanner error handling.\nBug: 5056917\n\nChange-Id: I1a7a73579e3ba4e9709459329fc1901a28b0f4b1\n"
    },
    {
      "commit": "767ad02b2ca9e6ad02b8cf56098cffad52970642",
      "tree": "dd0ed187db9746165f598a674e8e939fe75f9aa0",
      "parents": [
        "8d9a6e7b93ca96d6cf0f201ff5b139423e4d1d1f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 09 17:27:05 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 09 17:37:00 2011 -0700"
      },
      "message": "Quiet the log.\n\nChange-Id: Ie814b579997bb555eae014c22da0f41f1a46940f\n"
    },
    {
      "commit": "1a65546a55d019335655464ad895361ba9f89252",
      "tree": "0565d06ba8d5049f7b77ec8fc0bedbde4ce7a207",
      "parents": [
        "aeb65d45a93878bba361956b3f3280b36cc48e59"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 02 17:01:47 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:57 2011 -0400"
      },
      "message": "DO NOT MERGE MediaScanner: Fix bug in \"no media\" handling logic\n\nDon\u0027t let the \"no media\" status of one directory leak to the remaining files\nand directories in the same parent.\n\nBug: 4364077\n\nChange-Id: Ie756ccd06b1962b06143fc02a1a3927c3aba143a\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "462accab9dbcf8d1597de999328fa74337b3b88c",
      "tree": "7aad08ca048593787a6d23e4ef39ae2967254d50",
      "parents": [
        "0241cacb85dbac20b28036bbb8025dfd513e3753"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Apr 24 11:15:09 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 03 21:03:56 2011 -0400"
      },
      "message": "DO NOT MERGE MediaScanner: reimplement the \".nomedia\" feature for hiding files from the media provider\n\nPreviously we ignored any files and directories that had name started with \u0027.\u0027\nand ignored any directories that contained a \".nomedia\" file.\nNow to support transferring any file via MTP, we now add these previously ignored files\nto the media database, but will not mark them as audio, video, image or playlist files.\nThat way they will be included in the files table but will be hidden from the\naudio, video, images and playlist views that are used by apps like Music and Gallery.\n\nBug: 3405327\n\nChange-Id: Ibb37bb2856a0684ce9f685ed565ad35347622834\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3e9f9f1596d4225ddd9288b4f7b24a15221374dc",
      "tree": "1c88af9da88152b3d499d6a0a92f1a0349bddff9",
      "parents": [
        "5a7f242cfc0bd3b5208c21c27c0f5f348e98a0dc"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Dec 16 12:54:24 2010 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Dec 16 15:35:36 2010 -0800"
      },
      "message": "MediaScanner: Add support for scanning empty directories\n\nCurrently the media scanner does not create database entries for directories\nunless they contain a file that is scanned.\nFixing this so we provide a consistent view of the world to MTP.\n\nChange-Id: Ia776acfeae23192183e7192d63cdc34d830ea889\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c59ad085c9737e8d56328732be6864de302acae9",
      "tree": "b16037bb38c65f41fa3b9e69d1860ecb68103b97",
      "parents": [
        "5441abc147d97f722d35fe71e7fbf41ce48a4944"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Sep 10 14:47:36 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Sep 12 23:21:44 2010 -0400"
      },
      "message": "Media scanner support for tracking files of arbitrary type.\n\nThe native media scanner no longer filters files based on file extension.\nAudio, video, image and playlist files are handled as before, but non-media\nfiles are now inserted into the \"files\" table, which was originally added\nto support MTP.\n\nChange-Id: I9053218fb6d2671a3bb181405c34442b94678afc\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "4e2ffa400b82559cab2c5717c8dcdff393d334a9",
      "tree": "87f5e496695e2d9a2f411916b7e4b6b66317067e",
      "parents": [
        "8065e2056073808716db32136d7acfd50eeab924"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 15 14:58:25 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 15 15:02:52 2010 -0400"
      },
      "message": "Fixes for simulator build on lucid\n\nstrchr and strrchr now return const char* instead of char*\n\nChange-Id: I5ca831b8951af7e6306eb9d9d6f78ed2ec13d649\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "ed914577e770697e23884886787e333588eb4c61",
      "tree": "7c342abf7d3e559394f3870ca5dd300a4b703659",
      "parents": [
        "c08d805c8d7ba0da56988382f7e9b70b98468636",
        "d255a4e04d06796441ae234e8f3a8277578b3446"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 23 13:23:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 23 13:23:24 2010 -0700"
      },
      "message": "am 03e90f7e: am 58e9402b: Merge \"Properly assign LOG_TAGs in OMXMaster.cpp and MediaScanner.cpp\" into gingerbread\n\nMerge commit \u002703e90f7eeb032c981fc2952aa33f6ba1fae20d97\u0027\n\n* commit \u002703e90f7eeb032c981fc2952aa33f6ba1fae20d97\u0027:\n  Properly assign LOG_TAGs in OMXMaster.cpp and MediaScanner.cpp\n"
    },
    {
      "commit": "1629399bb578fc176613ccaf134d1be6e3047638",
      "tree": "7542a324f41776cc25f3d9e166ddb73dbb340b37",
      "parents": [
        "dadd0d1e7d5fbb88fd3420438c590a0bb4c18af5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 23 11:31:17 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 23 11:33:43 2010 -0700"
      },
      "message": "Properly assign LOG_TAGs in OMXMaster.cpp and MediaScanner.cpp\n\nChange-Id: I863651619f84b2b66e9a926ce1fef8ce6a53a42d\nrelated-to-bug: 2639116\n"
    },
    {
      "commit": "ef04e8f230e7ef5dece1cc4e73cd109c69905418",
      "tree": "bf01ceb455b1d0c426de2a11189c5eb4724cec67",
      "parents": [
        "c42aa12f73edf79bc9cb0dbf6b74a7f1af11c683"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 14 22:57:22 2010 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jun 14 22:57:22 2010 -0700"
      },
      "message": "MediaScanner: Fix handling of files with dirent.d_type \u003d\u003d DT_UNKNOWN\n\nThe previous code was calling stat() on the parent directory rather than the actual file.\n\nChange-Id: If64552cb37552c77618a81ae4333307a018efe13\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3e42b4491529975f771f8d71f931e24e120a7856",
      "tree": "9a37efbc1808b2b9ff7dd1081aa3308c287d0e2d",
      "parents": [
        "746973186764292a84d11856ac315fa4b62957ad"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 15 21:17:08 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 15 21:17:40 2010 -0700"
      },
      "message": "Fix regression in directory scanning\n\nPrevious range-checking fix removed an inequality check. This change\nrestores it.\n\nOffending change was I5eb310ced58c3c64a7af2d11b80326efe5adbcab\n\nChange-Id: Ic952c3ba5a4f7e5ab2148ec623b6f083cb7495fb\n"
    },
    {
      "commit": "eb03f13fd3b5a4b1060cd55881934ff9c918fe8c",
      "tree": "d99c5ddc4313f326d5dffde3ee56710a24450360",
      "parents": [
        "349a733b58c3b4c656c4ddfa8cbbb06c008d3bc5"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 18 09:25:49 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 18 09:26:47 2010 -0800"
      },
      "message": "Range check in MediaScanner::processDirectory\n\nMake sure we don\u0027t have an empty string before checking if it\u0027s a\ndirectory since this string is tainted.\n\nChange-Id: I5eb310ced58c3c64a7af2d11b80326efe5adbcab\n"
    },
    {
      "commit": "413f523afe96aff02d2b0a7459127b8f67b2b43c",
      "tree": "395251a728a780bf6d46e4ef4a721e0cf4a77f3a",
      "parents": [
        "8908d616cc9d74f9fe2c17f1d8d9335ee28c290d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 11:31:19 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 13:21:54 2009 -0800"
      },
      "message": "Refactor MediaScanner. Some steps on the way towards being able to build the tree without OpenCore.\n"
    }
  ]
}
