)]}'
{
  "log": [
    {
      "commit": "da34ac29ae22565c1be7266fe9d9feb455aebb1e",
      "tree": "f427a4ea8f7206f5276329f9fb6fc77f6765ddeb",
      "parents": [
        "c0575919e3371af55e993820cc306b986a98a3f8",
        "0da327aa9b6b564a9633024439d587daac4eadff"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 14:08:35 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 14:08:35 2020 +0000"
      },
      "message": "Merge \"Transcoder: Added MediaTrackTranscoder and VideoTrackTranscoder\""
    },
    {
      "commit": "0da327aa9b6b564a9633024439d587daac4eadff",
      "tree": "214e375106f5df7c62e8b3d7a26af9fd1cbfa352",
      "parents": [
        "b975440ff66db6b01c9aa100e78ea811c5f9a4bb"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Fri Jan 31 16:22:18 2020 -0800"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Thu Apr 30 16:52:52 2020 -0700"
      },
      "message": "Transcoder: Added MediaTrackTranscoder and VideoTrackTranscoder\n\nA track transcoder transcodes samples from a single track of a media file.\nMediaTrackTranscoder is the base class for all track transcoder, and\nVideoTrackTranscoder is a concrete implementation for video tracks.\n\nTest: Unit test.\nBug: 152091443\nChange-Id: I7980a3cda40229004b6bca5212d3e903f19a3017\n"
    },
    {
      "commit": "20f2aa6bd6556427d8e7a5b27ced5538106fe404",
      "tree": "dcd4131c27cd65638d8544b6c5b69675a8205611",
      "parents": [
        "920acdde9af9c71b94a3480af91112c8a49dc07d",
        "7ae4e2fa40fbf6035ab15952a3412031aa477798"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 29 21:39:57 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 21:39:57 2020 +0000"
      },
      "message": "Merge \"transcoding: use uid instead of pid for scheduling\""
    },
    {
      "commit": "7ae4e2fa40fbf6035ab15952a3412031aa477798",
      "tree": "8a7acb8da489b094941e57ac408c809d3209132b",
      "parents": [
        "4187c8951b6ec3611720c2f0c2f2ce8da14d9087"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 17 15:24:34 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 29 12:03:09 2020 -0700"
      },
      "message": "transcoding: use uid instead of pid for scheduling\n\nThis change replaces pid usage with uid, there is no functional\nchange other than that.\n\nbug: 154734285\nbug: 145233472\ntest: unit tests\n\nChange-Id: I2000a84486a561a393211cb0b098e456c2173227\n"
    },
    {
      "commit": "cb9198eddf4b3571cbee71c14938d2b9fa0f69b2",
      "tree": "229b672bbb9f75df7ea64713aa3ebd9ab4cfe62b",
      "parents": [
        "2f09c72a625eb0fefd0dc2d255f913cf39d621ff"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Apr 01 13:38:09 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Apr 22 15:01:34 2020 -0700"
      },
      "message": "Transcoder: Add MediaSampleQueue and unit tests.\n\nMediaSampleQueue asynchronously connects producers and consumers of compressed media samples.\nMediaSampleQueue will be used to hold output samples from each TrackTranscoder.\nMediaSampleQueue will be extended to optionally limit the number of (or cost of) samples it can\nhold before blocking the producer.\n\nTest: MediaSampleQueueTests\nBug: 152091443\nChange-Id: I8e78ea3c3848934078126220adaa91fb033b2088\n"
    },
    {
      "commit": "865f909bea63732260bdb4cd54892a1a6f228cad",
      "tree": "a6637c7297f0200adf123b95d7adeec126a38938",
      "parents": [
        "ae6fd9629d5812b2408c9875b7bba06c8941c754",
        "08b38d01b7ad88c3197c6010a71d483c0e74547e"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Apr 22 00:13:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 00:13:49 2020 +0000"
      },
      "message": "Merge \"MediaTranscodingService: Add some missing build flags to Android.bp\""
    },
    {
      "commit": "41114639940b7281327d57b7c806c3bca692f62a",
      "tree": "56cd5c4e7f6592809dc5faf1fb7784d2136ded8a",
      "parents": [
        "5d2eace937aa207e812f1534ad3fa2a55ea502ec",
        "c6710d3504d91499c5662972b33fb74908e39966"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Apr 20 06:30:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 06:30:35 2020 +0000"
      },
      "message": "Merge \"Mark some aidl_interface modules as unstable\" into rvc-dev am: ccc44f3f72 am: 82ca57d7fa am: 98fd9ab1d6 am: c6710d3504\n\nChange-Id: I6a62ec0442c159e0f18a622c7ae17219faf5ac86\n"
    },
    {
      "commit": "08b38d01b7ad88c3197c6010a71d483c0e74547e",
      "tree": "8ccbff470ca9ed279a2af0238cde4c0b412bda80",
      "parents": [
        "6709a937953cf92b73fb057ec9e4e0616ab3e6c5"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Fri Apr 17 14:29:33 2020 -0700"
      },
      "committer": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Fri Apr 17 18:08:28 2020 -0700"
      },
      "message": "MediaTranscodingService: Add some missing build flags to Android.bp\n\nThe build flag uncover some locking are missed and this CL also fixes\nthem.\n\nBug: 145233472\nTest: Unit test\nChange-Id: Ide999b95f064adf14967cc2e36331524e83426d2\n"
    },
    {
      "commit": "6709a937953cf92b73fb057ec9e4e0616ab3e6c5",
      "tree": "e69a37d36968779f85faae9af2c8594b12bf34b0",
      "parents": [
        "813e7c42256e6f67013a2357e9335b708ba17290"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Thu Apr 16 18:22:00 2020 -0700"
      },
      "committer": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Thu Apr 16 18:22:00 2020 -0700"
      },
      "message": "MediaTranscoding: Add libmediatranscoder to the service.\n\nOtherwise, the library will not get build by default.\n\nBug: 145233472\nTest: Build and run.\nChange-Id: Ia13aebad4678cc6a6a0004c0bd70cb820dcf35de\n"
    },
    {
      "commit": "478df7e3aa8435a70ca564dafe6a133e0bd938b1",
      "tree": "a593c42a4fc8b096a0c332fe4cf64a6f0f0e5f3f",
      "parents": [
        "182b06a0c4733501e9187a6095ff5be76f1a8908"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Jan 29 15:34:24 2020 -0800"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Apr 15 14:41:39 2020 -0700"
      },
      "message": "Added MediaSampleReader interface and an NDK based implementation.\n\nMediaSampleReader is an interface for reading media samples from\nmultiple tracks independently from each other. Each track maintains\nits own time state and reading from other tracks does not effect that.\n\nTest: Unit test.\nBug: 152091443\nChange-Id: Ib8c965df5d2a47fc6218ceb80b40d0687fb3b531\n"
    },
    {
      "commit": "6d58e4b1ae638222e6f228ab07f9709199778476",
      "tree": "b6002604f68ea5a258c3600cfc392fee38f0a017",
      "parents": [
        "b134bafea46c8a08fea30f2c534f9844039b937b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 31 09:41:10 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 15 12:42:10 2020 -0700"
      },
      "message": "transcoding: add job scheduler and unit tests\n\nbug: 145233472\n\nChange-Id: Id0244ff553e9fa963ccc7623cc6198dfd9db2564\n"
    },
    {
      "commit": "4a0d396b7a847ee1dc4a40fe4f4094858573910b",
      "tree": "178f4962814f28e6fb6fb049f148abb39c669669",
      "parents": [
        "5275ce9b5e7c27d5b037fd00250ef6fc609d7e6e"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Sat Apr 11 10:59:24 2020 -0700"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Mon Apr 13 18:21:26 2020 +0000"
      },
      "message": "libmediatranscoding: Update OWNERS file.\n\nBug: 145233472\nTest: None as just change OWNERS\nChange-Id: Ia4adac3b71c8fef0aed85cf64c59246a9ef0259d\n"
    },
    {
      "commit": "5275ce9b5e7c27d5b037fd00250ef6fc609d7e6e",
      "tree": "5474a90bc8f3705cf6adfbdb265969e69330b61a",
      "parents": [
        "2d9868ba0f03efaa1a0171bdc411bbeea9275ce5",
        "181f2ec8fe377c8efe77f8cf0422750d10e945bd"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Mon Apr 13 17:50:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 13 17:50:43 2020 +0000"
      },
      "message": "Merge \"Fix the clang-format error in libmediatranscoding directory\""
    },
    {
      "commit": "181f2ec8fe377c8efe77f8cf0422750d10e945bd",
      "tree": "784c3453b0712cd0e50ed9d5e5336e4540a4bd94",
      "parents": [
        "24bfbe2607d171fc9d4b30df6759e3575ffc8307"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Sat Apr 11 10:24:31 2020 -0700"
      },
      "committer": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Mon Apr 13 09:57:56 2020 -0700"
      },
      "message": "Fix the clang-format error in libmediatranscoding directory\n\nBug: 145233472\nTest: None as just change format style\nChange-Id: I221bdea94fef9ecc345056be6acbf4e617361197\n"
    },
    {
      "commit": "1f2151fea3e51fd0925e60088347aeea1b4d90aa",
      "tree": "00e1f2787f19e9c60d791c0a9b5ecb4cb35c40d7",
      "parents": [
        "433ccf7dca6db9ffd774cd10d539ccf9d62e3f46"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Apr 13 12:52:14 2020 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Apr 13 12:52:14 2020 +0900"
      },
      "message": "Mark some aidl_interface modules as unstable\n\nWith b/152655547, all aidl_interface modules are considered as stable\nunless it is explicitly with \"unstable: true\". This change marks the\naidl_interface that are not used across updatable module bounraries\nas unstable, so that the build system does not run the API\ndumping/checking on them.\n\nBug: 152655547\nTest: m\nChange-Id: I5597f7d3fa0e2196dbfcf7ab9a33c71c15a33806\n"
    },
    {
      "commit": "8e06263e23b0f44d3a8e2970548a600e6bde3560",
      "tree": "025ed1f839fc6751fc0015dfbdf689a896effb78",
      "parents": [
        "5e76a930b0a7147c0dbd32f0fc1e9cd35baaf705"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 31 10:56:37 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 31 15:52:47 2020 -0700"
      },
      "message": "transcoding: separate client interface from service\n\nRefactor AIDL to separate client interface from service.\n\nUse client listener binder as unique id for client, as multiple\nclients could exist for the same pid.\n\nMisc unit testing changes.\n\nbug: 145233472\ntest: mediatranscodingservice_test, TranscodingClientManager_tests\nChange-Id: I8d9522da23163375df8df7822d0f6ae270cff1b4\n"
    },
    {
      "commit": "93fb84c8d59eb3db95dd90bc34573b7c6c5b5b67",
      "tree": "70974bb096619c7f741f3ce49a52c25873219482",
      "parents": [
        "cb3bd4065ccc7fd6a1613a45f708b5b9f612c61a"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Mon Feb 03 18:19:39 2020 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Sat Feb 08 17:47:19 2020 +0000"
      },
      "message": "MediaTranscodingService: Add AdjustableMaxPriorityQueue.\n\nAdjustableMaxPriorityQueue is a custom max priority queue that helps managing jobs for MediaTranscodingService.\n\nAdjustableMaxPriorityQueue is a wrapper template around the STL\u0027s *_heap() functions.\n- Internally, it uses a std::vector\u003cT\u003e to store elements in a heap order.\n- Support adjusting item\u0027s priority while maintaining the heap property.\n- Support removing any item in the heap while maintaining the heap property.\n- AdjustableMaxPriorityQueue needs T::operator\u003c() at instantiation time\n\nBug: 145233472\nTest: Unit test.\n\nChange-Id: Ic43eee817877dfbf8b38919ce03d40d8763c493c\n"
    },
    {
      "commit": "5172cabc2ecf0dc6e15539eccae3b35d6aed3de8",
      "tree": "f8c25e3fd2da94c300cbbd63a417497d18f23fb0",
      "parents": [
        "3f4a68a09dfd87b6e5a40f67278e27c957c818a1"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Fri Jan 31 12:40:28 2020 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Sat Feb 01 00:54:27 2020 +0000"
      },
      "message": "MediaTranscodingService: Simplify TranscodingClientManager.\n\nChange the singleton to return reference instead of sp\u003c\u003e;\n\nBug: 145233472\nTest: Unit test.\nChange-Id: Ie5b8631ec9e917d80805f63c77618e24720f53bc\n"
    },
    {
      "commit": "9c04b8d17071731b919563c129919dd070f8075c",
      "tree": "e82f6739c53cb900a6cd02ea77b8ccdfd946c47b",
      "parents": [
        "91fe789336d2c9ff772651bfa654604d5d241fd2"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Wed Jan 22 10:03:21 2020 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Fri Jan 31 21:37:04 2020 +0000"
      },
      "message": "MediaTranscodingService: Implement service\u0027s add/remove client APIs.\n\nBug: 145233472\nTest: Unit test.\n\nChange-Id: Ice22f86942bf3838c80b100c71af46ff6e217744\n"
    },
    {
      "commit": "26587cbbaad5057e43f6648293fbe5a546fc809c",
      "tree": "a4a1046b12602a68dfe6aa28d122bcd1a2b79cc5",
      "parents": [
        "48c365e01796f391604560421d66ca175937243a"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Thu Jan 16 10:36:08 2020 -0800"
      },
      "committer": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Mon Jan 27 13:16:26 2020 -0800"
      },
      "message": "MediaTranscoding: Add TranscodingClientManager.\n\nTranscodingClientManager manages all the clients for\nMediaTranscodingService.\n\nBug: 145233472\nTest: Unit test.\nChange-Id: I29243eeb6dcc0271c9edc8cc28e1b9b2bf6b3912\n"
    },
    {
      "commit": "48c365e01796f391604560421d66ca175937243a",
      "tree": "145cd57d916d3725e50bdf740290722d62966687",
      "parents": [
        "a93e29dc1ad37d4e6810fdecff221dc69e7135ab"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Mon Jan 13 16:33:42 2020 -0800"
      },
      "committer": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Mon Jan 13 18:06:28 2020 -0800"
      },
      "message": "MediaTranscodingService: Rework Service\u0027s AIDL.\n\n1) Include parcel in Parcelable\u0027s name.\n2) Add TranscodingJobPriority.\n3) Change registerClient API to include pid, uid and packageName.\n\nBug:145233472\nTest: Build and run.\n\nChange-Id: Ide40e6de8fb1b6f01bbae4577ef3b14d6136b577\n"
    },
    {
      "commit": "06069a56a9550b10871fbcda1e57917a0c4173bd",
      "tree": "76cc50d2534d1636f75a3fa5b254d4a3680d504a",
      "parents": [
        "d2572133b15cafb9f670e96f93edd4d6c3fb96a6"
      ],
      "author": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Tue Nov 26 15:28:36 2019 -0800"
      },
      "committer": {
        "name": "Hangyu Kuang",
        "email": "hkuang@google.com",
        "time": "Wed Dec 04 15:43:53 2019 -0800"
      },
      "message": "MediaTranscodingService: Add AIDL interface for MediaTranscodingService.\n\nThere are a lot of TODOs now in the code and they will be addressed\nin the next few CLs. .\n\nBug: 145233472\nTest: Build and Compile\n\nChange-Id: I27d96b18ebca6f07bc24e4124fb48b0e79d387d2\n"
    }
  ]
}
