)]}'
{
  "log": [
    {
      "commit": "b5c0071bb7a1c6524deb42ac6643d8fae3106248",
      "tree": "630b9d7379f8a87f555bca8c9910d855948a0bb6",
      "parents": [
        "de8e67bc32a4c1494ed59a36c222b6ec7ad594c6",
        "8e9aa353c8c31d9b1809bd3912f81c0eb1d7ec46"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 03 22:29:42 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 03 22:29:42 2020 +0000"
      },
      "message": "Merge \"cmds: Use new libgui API for display info\""
    },
    {
      "commit": "7c96ea7ff84e1084332548583841735b694bfebd",
      "tree": "eb5d7c1bcb91cea21469e46b7c014ae44635a217",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 10 15:46:22 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 16 15:55:18 2020 -0800"
      },
      "message": "Remove mediametrics include symlinks\n\nBug: 143245419\nTest: build\nChange-Id: I6c836e60c0fe078f5ab7370aec156bdd6e8dcbf0\n"
    },
    {
      "commit": "4f6eb40d563e0e2b6e943305554d605afd5726fc",
      "tree": "b64f639b9de9364481b72e057f246ab6f2c841fe",
      "parents": [
        "63745973a63976af4d3e18569c2e98a1b691169c",
        "e1a3957f7bff359c6e9140ad88ad65b5d6bee45d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 14 02:22:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 14 02:22:28 2020 +0000"
      },
      "message": "Merge \"screenrecord: Use ui::Rotation\""
    },
    {
      "commit": "938bfa3631f73c7caad73f5348ce9ae0e1ec63ef",
      "tree": "cf782441da3aec418688f78b936d4a3cc55277da",
      "parents": [
        "9e088206fa25c0e85c7fb6d86d61d46cfd0fca19",
        "9d6fca51de4bd680405e26ce0557d35bf726e85d"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 14 00:15:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 14 00:15:47 2020 +0000"
      },
      "message": "Merge \"stagefright: move to system_ext\" am: 9fe6ffa891 am: caf501872d am: 9d6fca51de\n\nChange-Id: Idaae8003f74c342dfafbabfe899aa7eb3071074a\n"
    },
    {
      "commit": "6dfcfbda70888d093a32490c508945afee818e2e",
      "tree": "56ff0bc6459a7ac6e7c51dfc5d315d889e1e37df",
      "parents": [
        "737a07a0feb4b99db4ad757b77c109957388d659"
      ],
      "author": {
        "name": "bohu",
        "email": "bohu@google.com",
        "time": "Mon Jan 13 11:51:29 2020 -0800"
      },
      "committer": {
        "name": "bohu",
        "email": "bohu@google.com",
        "time": "Mon Jan 13 11:51:29 2020 -0800"
      },
      "message": "stagefright: move to system_ext\n\nOtherwise, build complains stagefright is placed\nonto system/.\n\nTest: build stagefright in emulator, and play\na mp4 with it.\n\nChange-Id: Iaca6c4cbc23d141fc9ea37f2e4d83dfe8650dea5\n"
    },
    {
      "commit": "7291da64f5c19d4f9144014601bca58f7562ddef",
      "tree": "1ba21f95d03a85b24a699d39736d5c4bf481c2f7",
      "parents": [
        "94e872e6894dce7d89954d0515c140ec626d20ba"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 17 13:01:55 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 17 15:32:57 2019 -0800"
      },
      "message": "Remove header symlinks\n\nTest: build\nChange-Id: Ie90eb4fc0233ae6ee152a7bccb182a223b2ceff0\n"
    },
    {
      "commit": "8e9aa353c8c31d9b1809bd3912f81c0eb1d7ec46",
      "tree": "a161497bb4fbd69a95a0d9fd7eae91c0a8eb5026",
      "parents": [
        "e1a3957f7bff359c6e9140ad88ad65b5d6bee45d"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Nov 25 09:48:39 2019 -0800"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Dec 13 10:23:52 2019 -0800"
      },
      "message": "cmds: Use new libgui API for display info\n\nBug: 144601064\nTest: Build\nChange-Id: I39ff087d5aa6ec25c0db73c307fa4e2b84a431ee\n"
    },
    {
      "commit": "e1a3957f7bff359c6e9140ad88ad65b5d6bee45d",
      "tree": "66831aeffa8ef4bee31b630cd304730f8dca876c",
      "parents": [
        "b7b870db0c6cc0c6375b154400a813b84f5056b4"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Nov 18 13:38:00 2019 -0800"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Dec 13 10:23:52 2019 -0800"
      },
      "message": "screenrecord: Use ui::Rotation\n\nBug: 144601064\nTest: Build\nChange-Id: I12d27e78d271a57d7bed46485d260ecd50d3ef8f\n"
    },
    {
      "commit": "630f74baaf5280a78350fa1ecb7283768a5c4bf9",
      "tree": "e20620e03a8ef5db88b55dfe70edfaa926ef6c43",
      "parents": [
        "643a5692fb1d1b7b0e2c90faa217816f7b524c51",
        "d17c85023ac2058233121b8a94603687c855c997"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "message": "Merge \"Add explicit private audio recording request\""
    },
    {
      "commit": "d17c85023ac2058233121b8a94603687c855c997",
      "tree": "39fc63d6f1037eafb71dc8046aefedfadfee9b53",
      "parents": [
        "d203cb92c9c9628b3bead45ec08f826544c1d649"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 24 15:58:35 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 04 17:58:34 2019 -0800"
      },
      "message": "Add explicit private audio recording request\n\nAdd the possibility for apps to indicate that their\ncapture use case is private and that a privileged Assistant\nshould not be able to capture concurrently.\nThis allows to override the default behavior tied to the audio\nsource (e.g VOICE_COMMUNICATION is private by default but\nUNPROCESSED is not).\n\n- Add AAudio API to set and get privacy sensitive mode on input stream\n- Add MediaRecorder API to set and get privacy sensitive mode\n- Modify AudioSource constructor to accept audio attributes instead of an\naudio source to specify the use case.\n- Modify audio policy concurrent capture logic to use audio attributes\nflag instead of audio source to decide of a capture client has\nrequested privacy mode or not.\n\nBug: 137850106\nTest: CTS AudioRecordTest and MediaRecorderTest, manual audio smoke tests\n\nChange-Id: I250ea5da4c1da809ceac0da22ae9bee15b937001\n"
    },
    {
      "commit": "01b23cb29fc6929139e3cc7c0c7b63c1b5a40c24",
      "tree": "01211af17486ba9a48e47ed5ab06a54db9398342",
      "parents": [
        "3668d6bb0076cfa631f05189c6b2c1b9e3ecd7e0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 03 14:20:58 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 04 08:34:57 2019 -0800"
      },
      "message": "Make screenrecord use NdkMediaMuxer\n\nTest: use screenrecord to record the screen\n\nChange-Id: I32b85ad10a216a9bf3d6d1d64a029a6dac8793a3\n"
    },
    {
      "commit": "6c525b799c5a9f57a1f144bd454be4015c44ec45",
      "tree": "88d96d3ba31458ca72b6481758b0b5f7de7fce63",
      "parents": [
        "db1cb2c7481faee30a07e08759f2d85b9ed3e954",
        "37850a5d0251fc3229db192a7aa7448f95adf3b6"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Wed Nov 06 17:22:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 06 17:22:46 2019 +0000"
      },
      "message": "Merge \"[libstagefright] fix -Wimplicit-int-float-conversion\""
    },
    {
      "commit": "37850a5d0251fc3229db192a7aa7448f95adf3b6",
      "tree": "f45a69d9dc6e45a73e736aff143e49809c6c9aa7",
      "parents": [
        "cb137d0ead90f63e9b67bd9af21425b32ebc150d"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Tue Oct 15 18:31:37 2019 -0700"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Tue Nov 05 22:40:25 2019 +0000"
      },
      "message": "[libstagefright] fix -Wimplicit-int-float-conversion\n\nIEEE754 single precision cannot precisely represent\nINT32_MAX/UINT_MAX/RAND_MAX.\n\nIEEE754 double precision cannot precisely represent INT64_MAX.\n\nAs such, implicit conversions from operations with floating point and\nintegral operands may result in a loss of precision.\n\nAccept the imprecision with by making the existing implicit casts\nexplicit.\n\nBug: 139945549\nTest: mm\nMerged-in: Ic66b3d3bbac9e644e27ad8233018f24dfce3209f\nChange-Id: Ic5a40abbccb1bf4d78475a6f3d1d2835df603d0a\nSigned-off-by: Nick Desaulniers \u003cndesaulniers@google.com\u003e\n"
    },
    {
      "commit": "13f103b28db5fc22361e352a8f0b777718716fb1",
      "tree": "712b48153d6d969c5757e441eeb2d4bc5539d963",
      "parents": [
        "54ae7b773e2e1e1f9e373e8d803c39f2295ed2f0"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Mon Nov 04 16:57:17 2019 -0800"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Mon Nov 04 16:57:17 2019 -0800"
      },
      "message": "[frameworks][av] fix -Wimplicit-int-float-conversion\n\nIEEE754 single precision cannot precisely represent\nINT32_MAX/UINT_MAX/RAND_MAX.\n\nIEEE754 double precision cannot precisely represent INT64_MAX.\n\nAs such, implicit conversions from operations with floating point and\nintegral operands may result in a loss of precision.\n\nAccept the imprecision with by making the existing implicit casts\nexplicit.\n\nBug: 139945549\nTest: mm\nChange-Id: Ic66b3d3bbac9e644e27ad8233018f24dfce3209f\nSigned-off-by: Nick Desaulniers \u003cndesaulniers@google.com\u003e\n"
    },
    {
      "commit": "cd8793a325408a5f77aee9bd719d2591fa4a30fd",
      "tree": "7accb34ca7b8b5fd261bde7a5bee21f22cbb8326",
      "parents": [
        "fcb1f7fa5a99a45596230876d5072d8351cac503",
        "e25539a93f04b06361252e2aa8baab534efbc1de"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 23 10:05:18 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 23 10:05:18 2019 -0700"
      },
      "message": "Merge changes from topic \"libdrmframework\" am: 84a53822a1 am: 460618a6d1 am: c317c587d5\nam: e25539a93f\n\nChange-Id: Ib8636ca3d1a5e251de8a4ce3643f0f88dfe85234\n"
    },
    {
      "commit": "84a53822a1a24785dfa5da63e364753423ae8257",
      "tree": "efb0ef18e6a76d6f69dd9c873bc6ec7c9ab5fe18",
      "parents": [
        "80d3d96941be2d110f30e3147c4e4fbbded05730",
        "9c6f790843939700fa18779f14b1df5fa1161024"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Oct 23 16:28:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 23 16:28:37 2019 +0000"
      },
      "message": "Merge changes from topic \"libdrmframework\"\n\n* changes:\n  Remove libdrmframework.so dependency from libdatasource.so\n  Make DataSourceFactory singletone\n"
    },
    {
      "commit": "01efa1083b0055c820b3b6cbf31909534b6c36aa",
      "tree": "60047364bc866f007e09380df09fe8c1747aad41",
      "parents": [
        "f81eff4896be5b442bd69b83ff8fc8bfca8dd474",
        "f94b6d6d8118e27213e38c0449159c60cbd74362"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 21 10:08:20 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 21 10:08:20 2019 -0700"
      },
      "message": "Merge \"Move AudioPlayer to test commands\" am: 4426ce8d95 am: 4520fef512 am: 8429516eed\nam: f94b6d6d81\n\nChange-Id: I96ba323a3400613395fd7fb21cb5869256af238c\n"
    },
    {
      "commit": "1edb68c38408d06bf8f97d6884663732b7dbcce2",
      "tree": "87159f2617c58f9cb971ab48c8512d5ad14da2df",
      "parents": [
        "03379fb2cc34c93214082a0ceaf038626117554d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 18 11:12:30 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 18 11:27:49 2019 -0700"
      },
      "message": "Move AudioPlayer to test commands\n\nAudioPlayer was only used by the commandline utilities, so move it\nout of libstagefright.\n\nTest: build, run\nChange-Id: I561cccd323206de7415bd235b72711194080aaea\n"
    },
    {
      "commit": "79b0c24b58af5fbfec814a2a11506ef0f72541c3",
      "tree": "2551d295da89029c75f6a9219a6bc1a3b2980b98",
      "parents": [
        "1f72838954cb3689fb58eef6276553d9a45ff0a8"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Sun Oct 13 08:17:34 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 15 11:00:29 2019 -0700"
      },
      "message": "Make DataSourceFactory singletone\n\nThis is preparation for having a subclass of DataSourceFactory which\nis only used in mediaserver process with OMA (forward-lock) use case.\n\nTest: build\nBug: 142567168\nChange-Id: I2a1ab3d1ae89f657a84376d9a95d4e814b545b4f\n"
    },
    {
      "commit": "a42a62d8633fa6fcabc8129a2c798da860630821",
      "tree": "77e009a25a0a222aba1cabdc276b5bc9da549d04",
      "parents": [
        "342d7bcf44b3edcce763f0417ad0a13b11bde285"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Sep 23 17:48:14 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Oct 11 21:40:26 2019 -0700"
      },
      "message": "libmedia: separate codeclist from libmedia\n\nTest: build.\nBug: 139201422\nChange-Id: I150c3bd04cc68a3b96a8762ba193fc1595ee6da3\nMerged-In: I150c3bd04cc68a3b96a8762ba193fc1595ee6da3\n"
    },
    {
      "commit": "fa8be7d2371d66db6c7838060d5729f6fd9374ef",
      "tree": "aa00504b96299a891446e46c81c6b0d72c9aae02",
      "parents": [
        "58ae37b5b34d6a2bddd46494230a58f5fcc3f5e3"
      ],
      "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": "Wed Oct 09 07:41:58 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\nMerged-In: I34d9937235c78f18f51b18945342a0743e209577\n"
    },
    {
      "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": "55b259cf5ec16df77b52206e8209f5df2fc214c5",
      "tree": "29989150d2cfb026f11ec5d43edb8116442e7311",
      "parents": [
        "87025d5658d1a3d78c1a634035f7126f0ba8a4f1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 01 13:43:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\nMerged-In: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "13aa1a4b6630a05fc3e48824b911009ecbb33284",
      "tree": "506fa3026d84685c2621157b9b668155c31ae0ec",
      "parents": [
        "e3cdab3c40cb71284a0e186d7d5a82257e7d34a1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 10:21:55 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Sep 30 14:04:37 2019 -0700"
      },
      "message": "Remove libmediadrm symlinks\n\nTest: build\nChange-Id: I53d703b6d34226926437b0207a2b3d51dff6881a\n"
    },
    {
      "commit": "df7b3d017a5e00afb76e2dfd7bbf9137db6da1d2",
      "tree": "b1bec0e282b0bed7e09c357756f1e34d8196fcee",
      "parents": [
        "29e02d0730993327cc4484dcf023439018347595",
        "23a180b0c2dfd317d55c1abe632aa81461a8856a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 27 23:49:05 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 27 23:49:05 2019 +0000"
      },
      "message": "Merge \"libmedia: separate codeclist from libmedia\""
    },
    {
      "commit": "3230ed8235a39adef82d7c3873e6a87007799ff8",
      "tree": "158042769963aa698a8fbd240d2abfc352220c3d",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 26 11:20:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 12:12:46 2019 -0700"
      },
      "message": "Remove symlinks from include dir\n\nTest: build\n\nChange-Id: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\nMerged-In: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\n"
    },
    {
      "commit": "824cb8f898008538eabfc26e31e081b2f84be0e7",
      "tree": "1bb7ac07cd5f15d168d6013267a0c03f2df2b288",
      "parents": [
        "3b93ca583af5296df1b4d45e4d16b5fba82205d2",
        "cf90b4931734e42c6092318991f213b76d7e849e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 18:13:29 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 27 18:13:29 2019 +0000"
      },
      "message": "Merge \"Remove symlinks from include dir\""
    },
    {
      "commit": "cf90b4931734e42c6092318991f213b76d7e849e",
      "tree": "3c0c685cb75bbdc37172d24113f6c0dbcbf3dfb4",
      "parents": [
        "d2dc18b063c548d9646dd1127fea97ccebdba079"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 26 11:20:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 09:02:30 2019 -0700"
      },
      "message": "Remove symlinks from include dir\n\nTest: build\n\nChange-Id: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\n"
    },
    {
      "commit": "23a180b0c2dfd317d55c1abe632aa81461a8856a",
      "tree": "c6547ba9a18fdbf766b6d8a753216489677e6728",
      "parents": [
        "3b93ca583af5296df1b4d45e4d16b5fba82205d2"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Sep 23 17:48:14 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Sep 26 15:50:30 2019 -0700"
      },
      "message": "libmedia: separate codeclist from libmedia\n\nTest: build.\nBug: 139201422\nChange-Id: I150c3bd04cc68a3b96a8762ba193fc1595ee6da3\n"
    },
    {
      "commit": "8dfda2b2757f17348c679fc2281899e87f972f51",
      "tree": "03c10db813cd1849be8f1f364a58bd4865ac10e1",
      "parents": [
        "d2dc18b063c548d9646dd1127fea97ccebdba079",
        "a7ccb190c5065b2f16773cb27ffa0ecfa773f1c6"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Wed Sep 25 15:41:37 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 25 15:41:37 2019 +0000"
      },
      "message": "Merge \"Add support to record external displays\""
    },
    {
      "commit": "7dd39723b34c8378fc5eabb4d4ccacf32f55ffe2",
      "tree": "222de47bcb84931d714d250fe51d3249771edc18",
      "parents": [
        "61d4a093f4b4041b145fbd7a3ab5ec04679f87d9"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Sep 05 15:14:30 2019 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 13 10:59:51 2019 -0700"
      },
      "message": "Improve visibility of IMemory security risks\n\nThis change renames the IMemory raw pointer accessors to\nunsecure*() to make it apparent to coders and code reviewers\nthat the returned buffer may potentially be shared with\nuntrusted processes, who may, after the fact, attempt to\nread and/or modify the contents. This may lead to hard to\nfind security bugs and hopefully the rename makes it harder\nto forget.\n\nThe change also attempts to fix all the callsites to make\neverything build correctly, but in the processes, wherever the\ncallsite code was not obviously secure, I added a TODO requesting\nthe owners to either document why it\u0027s secure or to change the\ncode. Apologies in advance to the owners if there are some false\npositives here - I don\u0027t have enough context to reason about all\nthe different callsites.\n\nTest: Completely syntactic change. Made sure code still builds.\nChange-Id: I5fb99aa797c488406083178a6b05355d98710d3b\n"
    },
    {
      "commit": "a7ccb190c5065b2f16773cb27ffa0ecfa773f1c6",
      "tree": "a24417f833c02c4d4b94e2ebc1855ca987e1ffec",
      "parents": [
        "a4be0c37e92faf1579b05077d7e3cbef8b93db78"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Thu Sep 05 11:53:52 2019 -0700"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Wed Sep 11 10:19:15 2019 -0700"
      },
      "message": "Add support to record external displays\n\nAdd an option --display-id to specify a pyhsical display id to record, bump version to 1.3. If we can not find the physical display from the id, error message will be printed out.\nThis CL depends on: ag/9366012\n\nBug: 136165419\nTest: screenrecord --display-id 1 /data/local/tmp/test.mp4\nChange-Id: I3b90d43024191d1e15563284836dc093862192e1\n"
    },
    {
      "commit": "1dd33eacee80d6934dd541eb4703f17e18d97c55",
      "tree": "a0fa7ed830978c53e04127b27cf03632d7ed69d3",
      "parents": [
        "e1de3d1ab2ea52b18716673e549fac209aedb2b7",
        "e9239dbe79ebaa93dda6d734cc80230736a17918"
      ],
      "author": {
        "name": "Kodi Obika",
        "email": "kodiobika@google.com",
        "time": "Tue Aug 20 18:57:32 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 20 18:57:32 2019 -0700"
      },
      "message": "Merge \"Added trace event to screenrecord\"\nam: e9239dbe79\n\nChange-Id: I786445ef718d73192ff9c94ab4482232154a1b85\n"
    },
    {
      "commit": "1f14e9f4747ddcf8820c81eedff5e592683e8ce0",
      "tree": "4b70c0e342f77e72c3a58e3c0b16af5b8bbea6b6",
      "parents": [
        "90982f280089e6956e82a66bdea79b23373092fb"
      ],
      "author": {
        "name": "Kodi Obika",
        "email": "kodiobika@google.com",
        "time": "Tue Aug 06 10:27:09 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 21 01:01:34 2019 +0000"
      },
      "message": "Added trace event to screenrecord\n\nBug: 135278534\nTest: Run Perfetto with \"screen recording\" enabled and execute\na query for the \"first_frame\" slice\nExempt-From-Owner-Approval: cherry-pick\n\n(cherry-picked from commit c840c0bfee6aa9be4e05e957e8d1ee8d9e330f75)\nMerged-In: I20abf7300e8c46b6e6dc52096db699e95c93297d\nChange-Id: I20abf7300e8c46b6e6dc52096db699e95c93297d\n"
    },
    {
      "commit": "c840c0bfee6aa9be4e05e957e8d1ee8d9e330f75",
      "tree": "cdd1bee23894235f558960c19f7c9bf9c22ee23f",
      "parents": [
        "096daf42eb9ffbd77b5fc08167e0dcf5c2e6302f"
      ],
      "author": {
        "name": "Kodi Obika",
        "email": "kodiobika@google.com",
        "time": "Tue Aug 06 10:27:09 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 13 16:20:57 2019 -0700"
      },
      "message": "Added trace event to screenrecord\n\nBug: 135278534\nTest: Run Perfetto with \"screen recording\" enabled and execute\na query for the \"first_frame\" slice\n\nMergedIn: Ifb984bfb0cdf48c61352e2923de42ce0ca06ace7\nChange-Id: I20abf7300e8c46b6e6dc52096db699e95c93297d\n"
    },
    {
      "commit": "ed84e713b3b84aa189459c2412e65a4be257bc89",
      "tree": "a39c5673e605639b3a5e9582dc256b6a2138a55a",
      "parents": [
        "06b462e6bac4cf5c96ce1c606d2d0cfaf17a3922",
        "ff5c81c647c4c7d7e44544175506d4b11d561efd"
      ],
      "author": {
        "name": "Adam Pardyl",
        "email": "apardyl@google.com",
        "time": "Thu Jul 18 09:12:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 18 09:12:49 2019 +0000"
      },
      "message": "Merge \"Add Winscope sync metadata to screen recording\""
    },
    {
      "commit": "ab33ac980af00a6e340d0766bfc91a7576d57db0",
      "tree": "652340843a6a6e3bd6647b7092d8c67925a4f1ea",
      "parents": [
        "24225f9ba085f07aa9727bb3c7f373e873d51a8e"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Fri Jul 12 10:27:45 2019 -0700"
      },
      "committer": {
        "name": "Jeffrey Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu Jul 18 04:02:11 2019 +0000"
      },
      "message": "Renderscript: rename .rs extension to .rscript\n\nReserve .rs extension for Rust.\n\nBug: 137365032\nTest: make checkbuild\nTest: cd frameworks/compile/slang/tests\n    ./slang_tests.py\nTest: atest CtsRenderscriptTestCases\nTest: CtsRsCppTestCases\n\nExempt-From-Owner-Approval: Clean CP\nChange-Id: I33010b5604d8140f3a50845c16daff743504c8d0\nMerged-In: I33010b5604d8140f3a50845c16daff743504c8d0\n(cherry picked from commit fafc72bd8ba6602c609c5109d2ec0ea318f14131)\n(cherry picked from commit 86fdb97cbb82464b0d021f16d7ad8752bf4b2767)\n"
    },
    {
      "commit": "737f6748fc37950e9095ede64249521ca5d9afd8",
      "tree": "019fddf7f41323d0306cef9824e1651051e66e07",
      "parents": [
        "4c76131a07107e12df9344366b3ac8a0035e1cb6"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Fri Jul 12 10:27:45 2019 -0700"
      },
      "committer": {
        "name": "Jeffrey Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jul 17 21:33:29 2019 +0000"
      },
      "message": "Renderscript: rename .rs extension to .rscript\n\nReserve .rs extension for Rust.\n\nBug: 137365032\nTest: make checkbuild\nTest: cd frameworks/compile/slang/tests\n    ./slang_tests.py\nTest: atest CtsRenderscriptTestCases\nTest: CtsRsCppTestCases\n\nChange-Id: I33010b5604d8140f3a50845c16daff743504c8d0\nMerged-In: I33010b5604d8140f3a50845c16daff743504c8d0\n"
    },
    {
      "commit": "ff5c81c647c4c7d7e44544175506d4b11d561efd",
      "tree": "88c7465f581138db9816a6dab9cc3208be748300",
      "parents": [
        "8cfe8f7b0d7d2e7f71714fb4a400d828b445ff06"
      ],
      "author": {
        "name": "Adam Pardyl",
        "email": "apardyl@google.com",
        "time": "Tue Jul 16 11:58:08 2019 +0200"
      },
      "committer": {
        "name": "Adam Pardyl",
        "email": "apardyl@google.com",
        "time": "Wed Jul 17 15:39:50 2019 +0200"
      },
      "message": "Add Winscope sync metadata to screen recording\n\nWinscope tool requires frame presentation time relative to\nandroid::elapsedRealtimeNano to synchronise video with SurfaceFlinger\nand WindowManager traces. The metadata is stored as a separate data\ntrack in the MPEG-4 container.\n\nDesign doc: http://go/winscope-video-sync\n\nTest: adb shell screenrecord /sdcard/test.mp4 --time-limit 5\nBug:\nChange-Id: I4536956efe8c62a0586b55bab1db6bdf368d4348\n"
    },
    {
      "commit": "fafc72bd8ba6602c609c5109d2ec0ea318f14131",
      "tree": "e302407d6c959c3b7332266a51f1273c13b0683b",
      "parents": [
        "41560413e5d562c2825afdf7567845c1a8e833a1"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Fri Jul 12 10:27:45 2019 -0700"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Mon Jul 15 09:23:02 2019 -0700"
      },
      "message": "Renderscript: rename .rs extension to .rscript\n\nReserve .rs extension for Rust.\n\nBug: 137365032\nTest: make checkbuild\nTest: cd frameworks/compile/slang/tests\n    ./slang_tests.py\nTest: atest CtsRenderscriptTestCases\nTest: CtsRsCppTestCases\n\nChange-Id: I33010b5604d8140f3a50845c16daff743504c8d0\n"
    },
    {
      "commit": "3f722145f77d74b9917f0fd5327b040cbf72324b",
      "tree": "943be0d9c7516f1bf17755ea961b6f9d018fe983",
      "parents": [
        "f4c490615161ddf3f7eda4bde59ae89cff35e28e",
        "31a472facd09964642bff5325e7626cdc65255a7"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 29 11:14:52 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 29 11:14:52 2019 -0700"
      },
      "message": "Merge \"Remove references to non-existant directories\" am: e8a9a230ac\nam: 31a472facd\n\nChange-Id: I5b5bf9685ae2936ee28a5df3d212f7e383dd8281\n"
    },
    {
      "commit": "3c9d6986abd9f07a6fb0d83862e71825e24c8fa7",
      "tree": "0763f114498b9ea3c89fb6441510ea1631c61912",
      "parents": [
        "a117e055af56b716b1403ea6de0f860cb740f65c"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 28 14:09:01 2019 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 28 14:09:01 2019 -0700"
      },
      "message": "Remove references to non-existant directories\n\nexternal/jpeg and frameworks/av/services/radio do not exist.\n\nTest: treehugger\nChange-Id: Ie7529f767bd97ef28d73e4dff03d2f1f74ab8bd3\n"
    },
    {
      "commit": "15a5130330371594d669dbbe1fee0e23b1f50224",
      "tree": "92f1ab133a5bb227f7ae80c47ffb09674dd2bcd5",
      "parents": [
        "1f2f5058f7b920ff63c974d0fc1e1b4eb5a0c702"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Mar 12 10:59:41 2019 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Mar 27 13:03:14 2019 -0700"
      },
      "message": "screenrecord: add bframes option\n\nTest: screenrecord --codec-name OMX.google.h264.encoder --bframes 1 /sdcard/a.mp4\nChange-Id: I6ae9310fb5ef644138af0becb7428f4a2c6393fe\n"
    },
    {
      "commit": "fa28812e6d483c5705709000af6cb5e692332a7f",
      "tree": "af4a254699d2eb2ac23de3049ab9afdc321b61e2",
      "parents": [
        "7b6fe4db7e6c5d4ef189c954e716250dea303054",
        "8a1f50678d5556ffcf05be818f364de8792e9c47"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Feb 06 22:46:09 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 06 22:46:09 2019 +0000"
      },
      "message": "Merge \"cmds: Use getInternalDisplayToken API\""
    },
    {
      "commit": "caac4484db371ceee0ace2a944e0286af051c02b",
      "tree": "75e61dd6c282522ecdb734ff08078397b9b1a7f2",
      "parents": [
        "0a6f296509b6e439c545cbf9db836f8c7393d565",
        "536426c32ff0ad5bc3fb78293af8cf0bf6918752"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 07:18:26 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 01 07:18:26 2019 -0800"
      },
      "message": "Merge \"Convert three media binaries to Android.bp\" am: 479b735392 am: 812f306ff8\nam: 536426c32f\n\nChange-Id: Ib0b891a695d613a8593b9619b908880895f16ef4\n"
    },
    {
      "commit": "33de46e8f32aaf803bc4e2c0efebc15660d7045e",
      "tree": "1d096aa210da1bdb42a23a46e77f2a8ea346b80c",
      "parents": [
        "1128b3fa1a8c3859e517d141c8f289ec4e35ef91"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 11:17:57 2019 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 11:40:58 2019 +0000"
      },
      "message": "Convert three media binaries to Android.bp\n\nThis converts mediaserver, mediametrics and screenrecord and the\nlibraries they depend on to Android.bp\n\nSee build/soong/README.md for more information.\n\nBug: 122331945\nBug: 80410283\nTest: boot blueline\nTest: youtube\nTest: screenrecord\nChange-Id: I132b8b4f7965449df68fb1544034a7241c594a63\n"
    },
    {
      "commit": "8a1f50678d5556ffcf05be818f364de8792e9c47",
      "tree": "0c64168138d40c1758742ce5f3c800458daa3b61",
      "parents": [
        "0ac26a451483ddea3be4fafe620b8fa01669149b"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Jan 25 03:12:01 2019 -0800"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Sun Jan 27 09:33:37 2019 -0800"
      },
      "message": "cmds: Use getInternalDisplayToken API\n\nBug: 116025192\nTest: screenrecord still works\nChange-Id: Ic7ad1d78ac8aa810bad8901fe1e71582168b8c4c\n"
    },
    {
      "commit": "60d429c4236cb2e8ae66253d592d97276bb16fbc",
      "tree": "8a42bf7c387e9bcd6edd5adc160346128fd4974d",
      "parents": [
        "8d4bdfd7e52f92d0e3eda23fec5081191bbf9a7b"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu May 10 14:08:19 2018 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Jan 15 16:00:37 2019 -0800"
      },
      "message": "cmd/stagefright: print more debug info for codecs\n\nReplace -p (profiles) with -i (info)\n\nBug: 119631295\nChange-Id: I37f208aad9c9d4698d77e30d9278148134e94372\n"
    },
    {
      "commit": "54c88096751d736a4b91d1f3eb0c6e0d5c3470ea",
      "tree": "4be4375a8807d2f540eace2bc32cedce62462b85",
      "parents": [
        "cccfb3fe54e4d45a6f02e197765eebfbd5926c34"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 11 14:06:15 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 14 16:59:13 2019 +0000"
      },
      "message": "Remove libmediaextractor\n\nMove DataSourceBase and MediaSource to libstagefright, and\nMediaBuffer, MediaBufferGroup and MetaData to libstagefright_foundation.\n\nTest: build\n\nChange-Id: I4f0ae01d40a32f4b773a2f74d5f2ae136e375322\n"
    },
    {
      "commit": "26ac00d36f525a0299b3cb998590bea7f62f7cdf",
      "tree": "9317eeadd33dc4b3a3097210684572f879354bc8",
      "parents": [
        "52e19d498d28d176c754740b55c025deca70d990",
        "707c1468b52b683753cf5d29811d67eb42a6a8ee"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 05 02:55:05 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 05 02:55:05 2019 +0000"
      },
      "message": "Merge \"Plumbing to recognize AV1 content\""
    },
    {
      "commit": "df182ecb151032564aa9e86c0220743f5fc2197b",
      "tree": "c6581128424cf26bb7e583f5fde26070854d401d",
      "parents": [
        "100288c4732c7bc4225b6b66e8c9bd9383af71fb",
        "36824249a0ef8ef6f7ef6f6db77e8409c2fa964e"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Jan 04 23:19:48 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 04 23:19:48 2019 +0000"
      },
      "message": "Merge \"Verify non-null format when starting AudioPlayer\""
    },
    {
      "commit": "dd44e3c5f2d199589c040a422b3e343c796bd362",
      "tree": "89b2ef6b476d9f12a11fbbe882df58d1964f966e",
      "parents": [
        "341dd3bb36c4ceb77c80b8e8db9f0e1d647dc9ce",
        "7dac08bb5b0750188e4cc5ffcf6330c1351cd759"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 13 15:49:41 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 13 15:49:41 2018 -0800"
      },
      "message": "Merge \"Remove CFI diagnostics.\" am: ebd8c69ac5 am: 9267f7a253\nam: 7dac08bb5b\n\nChange-Id: I67ac542950e6f2b8a65909b6f5c46ad52430f51c\n"
    },
    {
      "commit": "ebd8c69ac531cfcb6aa05a96e8cba604008bd6f0",
      "tree": "5d5aa19dc9e38553f7455273d1642d3831b87af4",
      "parents": [
        "92466dd60772c38e563ec42b6b06ef5185d68396",
        "eac728757e36ff908dcd17a589dacbe7e44a2f9e"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 13 20:43:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 20:43:46 2018 +0000"
      },
      "message": "Merge \"Remove CFI diagnostics.\""
    },
    {
      "commit": "707c1468b52b683753cf5d29811d67eb42a6a8ee",
      "tree": "70b65d4ff93d5e7b2c007bf9640d508bab4f12fb",
      "parents": [
        "156082a18c9186359d2a6bf434d76c338c8db43f"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Dec 05 15:21:35 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Dec 12 17:12:49 2018 -0800"
      },
      "message": "Plumbing to recognize AV1 content\n\nRecognize AV1 content in various container formats, so we can extract\nand pass to the AV1 codec.\n\nBug: 111936705\nTest: playback of AV1 videos\nChange-Id: I8a5523741481586b3569006236bd1fc92869ee76\n"
    },
    {
      "commit": "18343452006468a83457b9623b082f64fb479169",
      "tree": "1999a7d544c9bd5b1b4c09a536f0199fd93f1805",
      "parents": [
        "c6b48fe6272db5d3ca910598565c2b48b547ce7f",
        "0cf77658fa992cef0247484ba6b43526a9d2d571"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Dec 11 13:59:12 2018 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Dec 11 13:59:12 2018 -0800"
      },
      "message": "DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into master\n\nBug: 120502534\nChange-Id: Ifdd73b6dfcf3791fb8dae2b1796a34bb56aea190\n"
    },
    {
      "commit": "eac728757e36ff908dcd17a589dacbe7e44a2f9e",
      "tree": "787484029dce47d0816a3bf60ccce2b1938609ff",
      "parents": [
        "8c545704ea199e13c23f47cd8f4067bcdc25071f"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 06 12:25:49 2018 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Dec 06 12:25:49 2018 -0800"
      },
      "message": "Remove CFI diagnostics.\n\nRemove diagnostics mode from CFI across the board. This should reduce\nperformance overhead and also allows the minimal runtime to work when\nother ubsan sanitizers are enabled. CFI stack dumps should include a\nCFI related function, so it should be apparent when a crash is\nCFI-related.\n\nBug: 117417735\nTest: make -j\nChange-Id: Ie697f83b4894230ac90a4de447dccbc006c9c5a6\n"
    },
    {
      "commit": "476bf5170173d1081649d4da397b7c68dffd5fbf",
      "tree": "1584e964ee2ff967ed42af2e867fd7bc71d57cd6",
      "parents": [
        "a1270b044b4cc3447cb5b47af55a21638599475c"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Nov 21 16:49:07 2018 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Nov 26 11:34:01 2018 -0800"
      },
      "message": "stagefright cmd: add HEVC mime type\n\nTest: m stagefright\nChange-Id: I9830005b56a9b1fc6396df5caebb14008ea72810\nMerged-In: I9830005b56a9b1fc6396df5caebb14008ea72810\n"
    },
    {
      "commit": "1b848c068aab4d7f0ee74b76afe879d511e72229",
      "tree": "ee5d8ca153f664bd39a67bc0352e0807371d9d54",
      "parents": [
        "2cb14b89bdf0a53e7e1e51fa8fbd94e4dc9d20c3"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Nov 21 16:49:07 2018 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Nov 26 11:32:03 2018 -0800"
      },
      "message": "stagefright cmd: add HEVC mime type\n\nTest: m stagefright\nChange-Id: I9830005b56a9b1fc6396df5caebb14008ea72810\n"
    },
    {
      "commit": "36824249a0ef8ef6f7ef6f6db77e8409c2fa964e",
      "tree": "972e7e1c3a2a334393c055a1986c9208844f60bd",
      "parents": [
        "69c9844bed34c367224d5f6219e8410664b2119b"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Nov 05 10:29:55 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Nov 05 11:08:00 2018 -0800"
      },
      "message": "Verify non-null format when starting AudioPlayer\n\ncheck getFormat() return before dereferencing the pointer.  Also fix\nstagefright test harness to check AudioPlayer::start() return value\n\nBug: 118620871\nTest: poc\nChange-Id: I5864d3a12c77141109d6cbbbe1a688ae88456202\n"
    },
    {
      "commit": "9e103e1ded8907d48209c1004fab81e502c5a120",
      "tree": "6f495eaeece6649aa49694576c5b2d8a4452a66b",
      "parents": [
        "88217d0adfc695eadc41a246631d54eb90d2098a"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Oct 22 12:34:35 2018 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Wed Oct 24 13:37:53 2018 -0700"
      },
      "message": "screenrecord: Disambiguate ALooper\n\nDisambiguate ::ALooper (NDK) from android::ALooper (AV framework).\nFixes compile errors when a header causes ::ALooper to be included.\n\nTest: Builds\nChange-Id: I63c4dd8483f9bc91c4b22e05b9a86637c5f9e549\n"
    },
    {
      "commit": "df57b2a45badcb45597a46b5e9996c817273a084",
      "tree": "6def01c230a6700d7d64d460ed84ce151751659b",
      "parents": [
        "14636a5d9311a5b31274c6da8094e5fbbdccee13",
        "6579b7c23bc70f624a281b602ab032181afdb3b9"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Oct 16 16:28:29 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 16:28:29 2018 -0700"
      },
      "message": "Merge \"screenrecord: remove using namespace android\" am: 3d5054746e am: 387b0b64c2\nam: 6579b7c23b\n\nChange-Id: I6346d5945697b05b9bea8c50096669169fc5011e\n"
    },
    {
      "commit": "6579b7c23bc70f624a281b602ab032181afdb3b9",
      "tree": "ec8fe52a4faa3341645e323afa9b388f73e3ecd6",
      "parents": [
        "ab81ae6c42c7605020be60f9387154a0e9b1906a",
        "387b0b64c245d66b55ac33db4b551b612bdda4ed"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Oct 16 16:15:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 16 16:15:54 2018 -0700"
      },
      "message": "Merge \"screenrecord: remove using namespace android\" am: 3d5054746e\nam: 387b0b64c2\n\nChange-Id: I7938039dce96ec7275518c8c878f588f94d72a4c\n"
    },
    {
      "commit": "3d5054746e5bae84105ab4132419602e65c620c8",
      "tree": "209a8915a3197650b9734197a679dec12d563411",
      "parents": [
        "f5b1d442c7e2bf4de3ba0378af29585a5adcdc93",
        "c076297e45db6c1dbdccb98a59b27001d478a7d7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 16 22:42:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 16 22:42:58 2018 +0000"
      },
      "message": "Merge \"screenrecord: remove using namespace android\""
    },
    {
      "commit": "87653da51febf0b3be01c742c5d2b6728b496ffa",
      "tree": "27df5d3d9cc3b23e65f3fd917e75e30c8dca1f89",
      "parents": [
        "f441367a5fde9d08788797c4daccd717ce1a7609",
        "35b30994727e48988274c6623c921a88634376cd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 01 17:15:30 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 01 17:15:30 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in stagefright.\" am: 70f03120d7 am: fd38163d8b\nam: 35b3099472\n\nChange-Id: Ib35c96989eb80b612e2cd7a6a8798ed6db393ced\n"
    },
    {
      "commit": "35b30994727e48988274c6623c921a88634376cd",
      "tree": "c0357763600ff733acb8a3a485b78392685e4f71",
      "parents": [
        "c55c3de6e2af7d283130118688f68a856245b852",
        "fd38163d8b1d1e2a2c7d8a696ed8ad4d2899ab16"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 01 16:10:03 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 01 16:10:03 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in stagefright.\" am: 70f03120d7\nam: fd38163d8b\n\nChange-Id: I0b2482ce7ac9fa7132837d811c264e62dbbfc0d6\n"
    },
    {
      "commit": "7994454b6f3fb6b19905062af9ed8ddfbebbe65b",
      "tree": "d05a5d8ba8aa8bcf1d64bac65c40d2440633ddfc",
      "parents": [
        "3d514b76343437a6277a777e20ff13a15b0c8f1b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 13:46:20 2018 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Oct 01 20:33:12 2018 +0000"
      },
      "message": "Suppress implicit-fallthrough warnings in stagefright.\n\nAdd FALLTHROUGH_INTENDED for clang compiler.\n\nBug: 112564944\nTest: build with global -Wimplicit-fallthrough.\nChange-Id: Ifba4afb0d332fc7d8f57486d09b7b8e6b763293c\n"
    },
    {
      "commit": "c076297e45db6c1dbdccb98a59b27001d478a7d7",
      "tree": "6705bb61556a12d10d40f93985f2b9dfb70a3fa2",
      "parents": [
        "f001740a65799b66ae5bf46e55a4a8f5fe58f641"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Sep 25 23:40:06 2018 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Sep 25 23:40:06 2018 -0700"
      },
      "message": "screenrecord: remove using namespace android\n\nTest: m screenrecord\nChange-Id: I236897b619f77bad3445df0f908be22724bf62b6\n"
    },
    {
      "commit": "b1040c5f1a18b1f77775ffbb2810b2450c2950bc",
      "tree": "5810b4e90b0ccf6f926eb539b7f7d4edd32067a0",
      "parents": [
        "84b25f1fb9f0c42a4bbda0538c8527e89cd3b79d"
      ],
      "author": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Thu Aug 23 17:02:04 2018 -0700"
      },
      "committer": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Thu Aug 23 17:13:47 2018 -0700"
      },
      "message": "Let screenrecord to use viewport in DisplayInfo\n\nBug: b/113041831\nTest: adb shell screenrecord in all screen rotation and DPIs\nChange-Id: Ic6bbc233bfbc502b6272c5b4ee991282b055bc77\n"
    },
    {
      "commit": "8d34df7a69bde39404503afa1e247368458c9371",
      "tree": "122afa1d2633cee8b5537962e08947e3780013ba",
      "parents": [
        "a11eb695cac183c629cab536d101e6667343992b",
        "a70beb16195266900997f2f376d2f28017cd45a4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Aug 23 16:10:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 23 16:10:35 2018 +0000"
      },
      "message": "Merge \"Move MediaExtractor back to libstagefright\""
    },
    {
      "commit": "a70beb16195266900997f2f376d2f28017cd45a4",
      "tree": "ba0716f8eb0e1210e663bd48242c2b56deeee401",
      "parents": [
        "9985754cabf9d426bf95e3adfc27cea7fcc86e42"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jul 17 14:10:03 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Aug 23 08:10:30 2018 -0700"
      },
      "message": "Move MediaExtractor back to libstagefright\n\nIt is no longer needed in libmediaextractor, and moving it back\nto libstagefright will avoid a circular dependency later.\n\nBug: 111407253\nTest: build, boot, play some files\n\nChange-Id: I1373a9eedee27998e7733ea23ae1a375e45cc9c3\n"
    },
    {
      "commit": "685dd472a9880631e97bd5f88d278da8cd9710e8",
      "tree": "4ec7eeab1709c01bdc895b2c6652b24f6f750968",
      "parents": [
        "05435244e8c93c2fcf9ea6aefdc09854c7798e73"
      ],
      "author": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Aug 21 15:13:36 2018 -0700"
      },
      "committer": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Aug 21 17:43:22 2018 -0700"
      },
      "message": "Get screenrecord to exclude black cutout\n\nBug: b/112869712\nTest: adb shell screenrecord\nChange-Id: I69b497b81cfca93a8ad9ed46f25cdbb5dda81a89\n"
    },
    {
      "commit": "5d2ca663c2144548f4236060732fe07eec6a0273",
      "tree": "95b6d4d66b3ede7d3d987ae483e2b518b6168bbf",
      "parents": [
        "3e49917579411b540b770d0edf3987944fb443da"
      ],
      "author": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Aug 21 15:13:36 2018 -0700"
      },
      "committer": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Aug 21 17:40:20 2018 -0700"
      },
      "message": "Get screenrecord to exclude black cutout\n\nBug: b/112869712\nTest: adb shell screenrecord\nChange-Id: I69b497b81cfca93a8ad9ed46f25cdbb5dda81a89\nMerged-In: I69b497b81cfca93a8ad9ed46f25cdbb5dda81a89\n"
    },
    {
      "commit": "68e6fe1fef7c638805afdbe7f95b2f505ebe50ba",
      "tree": "3b727fcb6998c3e066a4634cad16f92ae6f2d626",
      "parents": [
        "7f1732ee0d2c0571f8a00cd6ccbaa74cf8dd260c"
      ],
      "author": {
        "name": "Previr Rangroo",
        "email": "prang@dolby.com",
        "time": "Thu Nov 30 20:02:13 2017 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Aug 02 12:15:23 2018 -0700"
      },
      "message": "Add EAC3 support to MediaExtractor\n\nReport EAC3 mime, sample-rate and channel count\nfor MPEG4 and TS.\n\nThis commit supersedes the commit on  p-fs-release  branch.\nhttps://partner-android-review.googlesource.com/c/platform/frameworks/av/+/1057810\n\nChange-Id: I9e14d821b5e78a03028bc52d8ee838c23859e9e9\nSigned-off-by: Previr Rangroo \u003cprang@dolby.com\u003e\n"
    },
    {
      "commit": "4a6dea91426d9a5d8c3be8acd8d6d450a8478d6f",
      "tree": "b79640e107eb14a13646ba3226e4b70f8f551d9c",
      "parents": [
        "febb45a8e25add67c44b24a7d69dd575f58e7867"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jul 13 10:32:44 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jul 13 10:32:44 2018 -0700"
      },
      "message": "Support verbose mode for regular decoding\n\nChange-Id: I90ed292e7879a78491e2f62b7ee92906496e8fc7\n"
    },
    {
      "commit": "7fa505e059904323cde05b903b0eeab763162323",
      "tree": "39992c11ab4b00b1638a66c0b6c79284fec8626f",
      "parents": [
        "80182df39aedd2cd2b589e289e9196f524b9436d",
        "7e6ac73f9cc1d78760f73fee2c55d0a3a3a19881"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 10 19:54:51 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 10 19:54:51 2018 +0000"
      },
      "message": "Merge \"stagefright: Add AC4 support in MediaExtractor for MP4/TS\""
    },
    {
      "commit": "fffc153839e9a7fc6ac222849ec89dc64d121397",
      "tree": "92e6368af258ad06133929744907a9efd49e995b",
      "parents": [
        "c22b754fa944017c5d4c5ca58a077fdf89842947"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jun 25 15:23:31 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jun 25 22:41:33 2018 +0000"
      },
      "message": "Add verbose option to stagefright command\n\nCurrently this prints out the format of each buffer being read from\nthe input during \u0027dump\u0027 operation.\n\nChange-Id: I44e59b96bfb07181d03903dab30c1b65f5eb6fcd\n"
    },
    {
      "commit": "ecd3616e7bcf083825b8fabc9e32224c1768776d",
      "tree": "4efa37e3fe6974d5b4ca383279fdde221ec1a968",
      "parents": [
        "a0d382085046ed3b3bea256fbe13051528596418"
      ],
      "author": {
        "name": "Umang Saini",
        "email": "umang.saini@ittiam.com",
        "time": "Fri Mar 30 16:43:26 2018 +0530"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Jun 19 10:54:37 2018 -0700"
      },
      "message": "codec2: add support for webm and 3gpp output format\n\nTest: setprop debug.stagefright.ccodec yes\nTest: screenrecord --mime-type video/x-vnd.on2.vp8 --codec-name c2.google.vp8.encoder --output-format webm /sdcard/record.webm\nTest: screenrecord --mime-type video/x-vnd.on2.vp9 --codec-name c2.google.vp9.encoder --output-format webm /sdcard/record.webm\nTest: screenrecord --size 176x144 --mime-type video/3gpp --codec-name c2.google.h263.encoder  --output-format 3gpp /sdcard/record.3gpp\nChange-Id: I2c017a231a0f76a03aff0758c57441275c7bd6d5\n"
    },
    {
      "commit": "a6c74249698e891cad02e9ba1ca577760537da65",
      "tree": "9b537504303251deac186b2fcc8482f76271eb01",
      "parents": [
        "7e7131e9d5352d5320324dd2d1312d2cb71006ce",
        "2b008376098a2b48ed579ccb1cba4d8659c47791"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri May 25 09:53:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 25 09:53:36 2018 -0700"
      },
      "message": "Merge \"screenrecord: ignore SIGPIPE\" into pi-dev am: 9c2b764df6\nam: 2b00837609\n\nChange-Id: Ia00ae07562e34c29cccaf67727cea6693f6968bf\n"
    },
    {
      "commit": "e21db1a878294b7a620a9b99931131d7dc0f6614",
      "tree": "a937f64f5f8c80db19d26509f8c3a3a326365eb5",
      "parents": [
        "dddee5810b848bc7090e7e687cbedcd7beafeb18"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed May 23 20:46:51 2018 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu May 24 11:09:01 2018 -0700"
      },
      "message": "screenrecord: ignore SIGPIPE\n\nBug: 74441592\nTest: screenrecord --verbose /sdcard/record.mp4\nChange-Id: Icabfc8d8cb3c1541d3727545687bec6ac5404deb\n"
    },
    {
      "commit": "f4b5b3a9bfe50e7d44272a81b91b2eabf8b579da",
      "tree": "c734763835b14bcc47575dab3e0759ec0386b479",
      "parents": [
        "5c3c29e53490558a8e538044921daa263df22414",
        "173ede0bb1d2b1ab7fb47f7e6474d91cc95d76d1"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 26 13:17:01 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 26 13:17:01 2018 -0700"
      },
      "message": "Merge \"Remove one redundant frame copy in MetadataRetriever\" into pi-dev am: b0d44131e9\nam: 173ede0bb1\n\nChange-Id: I67458f38c9e1f798d662c7faf37f54e6ae84ea2a\n"
    },
    {
      "commit": "3f4e6ddcf05aa1a286bc3963b5a9f53bf30b4327",
      "tree": "afb38add9c3818f5039a7d1b21fe65bd2b3e53a3",
      "parents": [
        "67f280ee7f7ec076cce335c7aa7d3150ae0a3e28"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 24 16:12:57 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 26 11:58:49 2018 -0700"
      },
      "message": "Remove one redundant frame copy in MetadataRetriever\n\nWhen extracting bitmaps, MediaMetadataRetriever does a copy from\nStagefrightMetadataRetriever\u0027s VideoFrame to IMemory. We could\njust allocate IMemory directly and return that to the client.\n\nbug: 78475896\nChange-Id: Ibe07e7d2c68f031261470308476089c2fa9298ea\n"
    },
    {
      "commit": "7e6ac73f9cc1d78760f73fee2c55d0a3a3a19881",
      "tree": "a383debaed6ad42e44db54de83745f81885b5cbe",
      "parents": [
        "238692c12e512f367d3cf99bfc3f5405ca56d0c4"
      ],
      "author": {
        "name": "Previr Rangroo",
        "email": "prang@dolby.com",
        "time": "Mon Nov 13 20:20:20 2017 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Apr 11 22:03:51 2018 +0000"
      },
      "message": "stagefright: Add AC4 support in MediaExtractor for MP4/TS\n\n* Add AC4 mime type\n\n* Add AC-4 support to TS extractor\n** Extract PES private data and AC4 descriptor.\n** Dequeue and parse AC-4 access unit and sync frame\n** Validate AC4 elementary stream header and parse sampling rate.\n\n*  Add AC-4 support to MPEG4Extractor\n** Parse AC-4 sample entry in MP4 and set AC-4 MIME\n** Add AC-4 sync header to MPEG4 encapsulated AC-4 raw frame\n\n*  Add AC4 DSI Parser\n** In order to populate the AudioPresentation objects we need to\n   extract the AC4 presentation information from the dsi that is\n   written to the MPEG4 file during muxing.\n\nChange-Id: If84c24ca475cabf3e0d2bdf3e4850aeeb185a0de\nSigned-off-by: Previr Rangroo \u003cprang@dolby.com\u003e\n"
    },
    {
      "commit": "d3ac20b4257530c74878e514e948eec74c96db24",
      "tree": "ff5a09343ace35c24ade22c2fee1d0e6b9e30dfa",
      "parents": [
        "f4b7851d822339d3c796b046a3eeff07de542dc7"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Fri Apr 06 13:31:01 2018 -0700"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Fri Apr 06 13:31:01 2018 -0700"
      },
      "message": "stagefright: Move NULL check\n\nWe switch our NULL check to before we dereference \u0027buffer\u0027 for\nthe range_length().  This allows a debug build with a bad state\nto have things caught via CHECK instead of a crash.\n\nTest: Treehugger\nChange-Id: Iae3a6a9e90ec91962dc0e9bebcac075cf1d7d4c1\n"
    },
    {
      "commit": "3d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0",
      "tree": "4e73f99782f61c1d3d76767b9e03e2aae7ea6130",
      "parents": [
        "13cb23855c3b5242818725262d8822dd4f9be24e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 16 08:24:08 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 23 10:04:34 2018 -0800"
      },
      "message": "Remove RefBase from the extractor API\n\n- Add MetaDataBase base class that MetaData derives from, but which\n  does not derive from RefBase.\n- MediaBuffer::meta_data() now returns a MetaDataBase\u0026 rather than an\n  sp\u003cMetaData\u003e\n- Rename MediaSourceBase to MediaTrack.\n- MediaSource no longer derives from MediaSourceBase (or MediaTrack)\n- MediaTrack::getFormat(), MediaExtractor::getTrackMetaData() and\n  MediaExtractor::getMetaData() all take a MetaDataBase\u0026 parameter that\n  they fill out, rather than returning a MetaData directly (the\n  corresponding methods on MediaSource and RemoteMediaExtractor continue\n  to return MetaData)\n\nBug: 67908544\nTest: CTS MediaPlayerTest, DecoderTest, EncodeDecodeTest, manually record video\n\nChange-Id: Ib531ab309061290be33d40d6100c9a8127e22083\n"
    },
    {
      "commit": "1889c3edad32995c0cf26ae2248fe7c957b7ec84",
      "tree": "5a4bd7fec36d039f75d04124b46d6295ac65e200",
      "parents": [
        "405b3c70ccf6c6671fbbe72557a8493e4e0f6097"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Feb 01 13:44:57 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 12 23:59:34 2018 -0800"
      },
      "message": "Add MediaBufferBase and use it in MediaSource and MediaBufferGroup.\n\nMediaBuffer class exposes internal classes, ABuffer and IMemory, which\nwe don\u0027t want to expose to plugins. This change introduces\nMediaBufferBase which does not expose any classes from system library.\n\nTest: build and post-submit media cts tests\nBug: 67908556\nChange-Id: Ic9ee239caf9b84b2b3740e2d533257afa25c8784\n"
    },
    {
      "commit": "dc31017ea51ee7ba0db2068f82305eb86e2967a2",
      "tree": "074f4820862e6407c5b839848bd6e06083547ecb",
      "parents": [
        "0fa28dcc1198d14b6bf34fb673c5603d225bcba5"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Jan 30 16:51:07 2018 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Feb 06 14:17:12 2018 -0800"
      },
      "message": "CCodec: Episode VI --- Set Persistent Surface\n\n- Implement CCodec::setInputSurface().\n- Introduce InputSurfaceWrapper to handle both IInputSurface and\n  IGraphicBufferProducer.\n- Create C2OMXNode to wrap codec 2.0 component in IOMXNode, so that\n  it can be used in IGraphicBufferPrdoucer::configure().\n\nTest: setprop debug.stagefright.ccodec yes\nTest: screenrecord --codec-name c2.google.avc.encoder /sdcard/record.mp4\nTest: screenrecord --persistent-surface --codec-name c2.google.avc.encoder /sdcard/record.mp4\nChange-Id: I7ea9f150ae06996f03a78645d6e748d265b975df\n"
    },
    {
      "commit": "7dc218e17800cc3ac95551e3280820f407adf7b5",
      "tree": "5b1bb688016d28275880b5953617cec84d12fafa",
      "parents": [
        "0f826b3e28c1e917f5ba94af6eb6f2ef87661a15"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 29 08:59:33 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 31 00:08:48 2018 +0000"
      },
      "message": "Move MetaData from foundation to libmediaextractor\n\nTest: cts-tradefed run cts-dev --module CtsMediaTestCases --compatibility:module-arg\nChange-Id: I2c5e05f83f039813cb4c862e929315e623d5d7fa\nCtsMediaTestCases:include-annotation:android.platform.test.annotations.RequiresDevice\nBug: 67908544\n"
    },
    {
      "commit": "3184abdd4f164cbc66221818db1243399d20cfa0",
      "tree": "4af874cf9d773107cf87323d33d895a4e23b96c0",
      "parents": [
        "c0f23e945006996262cb263b5b719587964df353"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Jan 22 19:30:38 2018 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Jan 24 12:40:58 2018 -0800"
      },
      "message": "CCodec: Episode III --- Video Encoding\n\n- Implement createInputSurface()\n- Handle RGB format in C2AllocatorGralloc\n- Define picture type mask and handle it\n- Process onWorkDone_nb() callbacks in a separate thread\n- Add an unofficial option to take component name directly in screenrecord\n- Force array mode for allocation latency; to be removed once proper\n  buffer pool is in place.\n\nTest: setprop debug.stagefright.ccodec yes\nTest: stagefright -S -N c2.google.avc.decoder /sdcard/a.mp4\nChange-Id: Iba225350e2eb2a1e6f4d45a02628d0f7ba188df3\n"
    },
    {
      "commit": "ab7429b4cec5e619f0ed77d13363da4167212874",
      "tree": "0422b04eca116f462e5b29345934cbd8a0bec9d3",
      "parents": [
        "1c838c481692c45b96786dcdd520296b73a71809",
        "74065036f03cb9f96acb43c6e4f105ec91132395"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 23 19:17:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 23 19:17:44 2018 +0000"
      },
      "message": "Merge \"Remove unnecessary includes and forward declarations\""
    },
    {
      "commit": "74065036f03cb9f96acb43c6e4f105ec91132395",
      "tree": "d7d742dd47b2ec50224f37dc35899f62c93ab0b5",
      "parents": [
        "da60340a9e5ce64270f1106239b736296f280df4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 23 08:16:29 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 23 08:16:29 2018 -0800"
      },
      "message": "Remove unnecessary includes and forward declarations\n\nBug: 67908544\nTest: build\nChange-Id: I824625940ba562571b16ed21e351ee17807d7d30\n"
    },
    {
      "commit": "20db1647e6062631e93f8040a352950b5960dd8e",
      "tree": "87f5c8ab18390ddbf1670f63d8a29a29d4517929",
      "parents": [
        "2917aa469abba347a1ab1e6fa766d62721182788"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Jan 09 16:24:44 2018 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Jan 19 22:26:46 2018 +0000"
      },
      "message": "codec2: add C2SoftAacEnc\n\nTest: setprop debug.stagefright.ccodec true\nTest: audioloop -N c2.google.aac.encoder -M audio/mp4a-latm\nChange-Id: I1e2df1c4d435d0e6b8f9f1d4caecf883e03bd515\n"
    },
    {
      "commit": "96310bd5caa54a4ced01d3fca684a8f89799fefd",
      "tree": "7168bf81428d866e7105c97391b83137fabf0d74",
      "parents": [
        "9321dc866ea81a90e765c06fe20adec7e163338a"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Dec 12 08:35:15 2017 -0800"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Jan 10 11:32:27 2018 -0800"
      },
      "message": "CCodec: Episode II --- Prepare For Audio\n\n- Get components from C2ComponentStore\n- Determine type of the stream from C2ComponentInterface\n- Change Codec 2.0 prefix from \"codec2.\" to \"c2.\"\n- Define csd info and handle it\n- Change codec name override flag for stagefright command-line tool\n  from \"-O\" to \"-N\"\n\nTest: setprop debug.stagefright.ccodec true\nTest: stagefright -S -N c2.google.avc.decoder /data/local/tmp/a.mp4\nChange-Id: Id9d60fd086ddcb751e5d8f658ef81bd629c0f4a1\n"
    },
    {
      "commit": "4f87426e12f5f12e0724519e77f8237a6b2d5dac",
      "tree": "04c1d771e5c4f1619fb176e696efb0f3c52b5041",
      "parents": [
        "cc25a713d9c3ea87299324d0f44864e78710020e"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Sep 13 10:25:13 2017 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Wed Nov 29 16:48:31 2017 -0800"
      },
      "message": "CCodec: Episode I --- Barely Decoding Video\n\n- Implement CCodec and CCodecBufferChannel: video decoder only\n- Modify stagefright command line tool to take component name\n- Fix C2SoftAvcDec around EOS and flush\n\nBug: 69376489\nTest: setprop debug.stagefright.ccodec true\nTest: stagefright -S -O codec2.google.avc_decoder /data/local/tmp/a.mp4\nChange-Id: I36d5f476099b5c055c0be0244e99bdf9dd28441e\n"
    },
    {
      "commit": "e7b894297aebc24939ddfa632ea3dd2d405d9f93",
      "tree": "9ecbc48782ee462413281ecdf7f5b6b276e96eee",
      "parents": [
        "068fe16a1b8f511046ba787f33605c0ac64f1ab5"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 19:33:39 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 23:32:11 2017 -0800"
      },
      "message": "Remove dependency on non-Treble OMX\n\nThis essentially reverts commit ba40190c5e8d9bfe5b814984c6861809fea064bd,\nwhich was made originally for b/69110957.\n\nThe change in addition to reverting is the reordering of calls in\nmain_codecservice.cpp. This CL makes the call to SetUpMinijail() come\nbefore the call to ProcessState::self()-\u003estartThreadPool().\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 67990472\nChange-Id: Ic62acf3ae1aa3f9249e5c3ce542fb4f95689704e\n"
    },
    {
      "commit": "ba40190c5e8d9bfe5b814984c6861809fea064bd",
      "tree": "f935c1e123522e1624163278a8b8564c71c9a394",
      "parents": [
        "77a5b891eb2c64246c82d695aac40c5312f0ff3e"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 15:38:46 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 23:57:36 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\"\n\nThis reverts commit 620e4667dc41e17e365615fda4507fa9f7267ca0, which was\nmade originally for b/67990472.\n\nBug: 69110957\n"
    },
    {
      "commit": "25a0160e3dfa126266cbe5d8e05c003798276a70",
      "tree": "7ac92c9e53ad197b928304ab34c9371a77468ce4",
      "parents": [
        "94d28be1805800764701225fcae696aa11dab93e",
        "620e4667dc41e17e365615fda4507fa9f7267ca0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 09 01:16:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 01:16:14 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\""
    },
    {
      "commit": "8568cb93fc862312923b514b7f4052b9e67bd8ad",
      "tree": "b177247be333681954856c885b396bdfde3fb694",
      "parents": [
        "248c9ee9de29ec6177c39921492661edaee06382"
      ],
      "author": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Mon Oct 30 11:13:36 2017 +0900"
      },
      "committer": {
        "name": "Jae Shin",
        "email": "jaeshin@google.com",
        "time": "Tue Nov 07 02:54:04 2017 +0000"
      },
      "message": "Remove libmedia_omx_defaults from libmedia\n\nlibmedia_omx_defaults includes source files and this default was\nused in both libmedia.so and libmedia_omx.so. This is an issue because\nlibmedia_omx and libmedia are both loaded in the framework process\nthrough dependency chains such as libstagefright -\u003e\nlibstagefright_omx_utils -\u003e libmedia_omx.\n\nTo fix the issue, libmedia_omx_defaults is removed from libmedia and\nlibmedia now depends on libmedia_omx. Other modules/libs that originally\ndepended on libmedia and need access to libmedia_omx_defaults\u0027 source\nfiles, now depend on libmedia_omx as well.\n\nBug: 67871061\nTest: mma -j and boot test\nChange-Id: I93a10df1fed3c7cea93b580d00f33ba749d80e95\n"
    },
    {
      "commit": "620e4667dc41e17e365615fda4507fa9f7267ca0",
      "tree": "bbeb8927781dba36cea9dd200e9be4f4279ef55e",
      "parents": [
        "ef9fc7792d4995da68cb71a3e9f2304e565a016d"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Oct 27 00:12:47 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 31 17:15:15 2017 -0700"
      },
      "message": "Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\n\nThis reverts commit 85e88d9b45d4a9b0b012f81ac068d216f588caac.\n\nAlso, this fixes the crash that would happen on devices that do not have\nfull Treble enabled.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 68340092\nBug: 67990472\nChange-Id: I6d96cecb8eaa8691c4c0f15fe0c8e60d0c74b440\n"
    },
    {
      "commit": "85e88d9b45d4a9b0b012f81ac068d216f588caac",
      "tree": "1eb2868ab206357f4707667eb5def5106bbc04d4",
      "parents": [
        "442459bca04f95ef2acd34e3de01f55bd5ede132"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 26 16:16:55 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Oct 26 16:17:25 2017 -0700"
      },
      "message": "Revert \"Remove unused modules made for non-Treble OMX\"\n\nThis reverts commit 37c79ffe2fa52a1eaa4db74b5e15c6d41646efbf\n\nBug: 68340092\nTest: revert\nChange-Id: If7736b745f981105bed4ffda2e63691d8862d259\n"
    },
    {
      "commit": "37c79ffe2fa52a1eaa4db74b5e15c6d41646efbf",
      "tree": "47f71622b0928c1c9b2ded9e739b4fb06913662c",
      "parents": [
        "7f5b7818ff6e6bd973c510a1f41dd8c308f51db1"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Sat Oct 21 05:31:38 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Tue Oct 24 16:13:38 2017 -0700"
      },
      "message": "Remove unused modules made for non-Treble OMX\n\nAll devices should use Treble with OMX hals now.\n\nThis CL removes\n1. Non-Treble implementations of OMX and OMXStore\n2. MediaCodecService\n3. All dependencies on sysprop system.persist.treble_omx\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 67990472\nChange-Id: I245ecf89d30d532f232e05e362e1cea76f5c37de\n"
    }
  ],
  "next": "d91dc5a0602f54fc0d4d2187f37b5b8169bb62c3"
}
