)]}'
{
  "log": [
    {
      "commit": "6c103703672d22ce0b2af3a07eacfa49c2dfab70",
      "tree": "975db2b83b9f686d63bfc955320965c92b6919ef",
      "parents": [
        "687a009e40ff39f2d53a01fa3a2d8bbe3e28b4de"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Tue Aug 11 15:13:13 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Aug 12 11:06:15 2020 -0700"
      },
      "message": "Transcoder: Add a MediaSampleReader benchmark test.\n\nTest non-sequential sample access as well as sequential\nvideo only access.\n\nTest: Ran the benchmark.\nBug: 160268606\nBug: 152091444\nChange-Id: I6407c8011e85e2b5050450f76f24289009995d1e\n"
    },
    {
      "commit": "687a009e40ff39f2d53a01fa3a2d8bbe3e28b4de",
      "tree": "7dc972e1116706103b69bdba2e26218fc85d4441",
      "parents": [
        "262eb70e0e3772ccfad17805191d81ee36f6ffeb",
        "800793f3495649b415b6e04f87dc4bda1b00978b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 04 22:28:29 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 04 22:28:29 2020 +0000"
      },
      "message": "Merge \"Transcoder: Preserve source track\u0027s bitrate by default.\""
    },
    {
      "commit": "800793f3495649b415b6e04f87dc4bda1b00978b",
      "tree": "106b5fd76e26da397ad22bca4067dd5b5a7ac110",
      "parents": [
        "41ac4ced446869138f74d0e510b6e3b437fa84dd"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Fri Jul 31 16:16:38 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Tue Aug 04 13:10:00 2020 -0700"
      },
      "message": "Transcoder: Preserve source track\u0027s bitrate by default.\n\nWhen no bitrate is passed in the transcoder now preserves the\nsource track\u0027s bitrate. If the bitrate is not available as metadata\nthe transcoder will sample the source track and estimate the bitrate.\n\nFixes: 160648740\nTest: Unit tests.\nChange-Id: I4e0284128aaa1116f5b61d908b52582b2ed3d7e4\n"
    },
    {
      "commit": "5d0c89bb526220f66bfa1ba3c7b5d7568606d469",
      "tree": "84f7c4a53fd8b8afec7f0107bd9efab8260564f8",
      "parents": [
        "30433515c8ad3ce8bf04ddd30181f9e912542083",
        "935918944c7487358475975e1e11e4e47fad36cf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 04 16:33:33 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 04 16:33:33 2020 +0000"
      },
      "message": "Merge \"Transcoder: Adopt MediaCodec\u0027s ALLOW_FRAME_DROP key\""
    },
    {
      "commit": "935918944c7487358475975e1e11e4e47fad36cf",
      "tree": "026dcbb3da7279a67633a561d85cf904fb83e7e2",
      "parents": [
        "b09aac27a243546e6ccf11596e66c56d07327af1"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Mon Aug 03 18:56:55 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Mon Aug 03 18:58:48 2020 -0700"
      },
      "message": "Transcoder: Adopt MediaCodec\u0027s ALLOW_FRAME_DROP key\n\nPrevent decoder from overwriting unconsumed frames by\nsetting ALLOW_FRAME_DROP to 0.\n\nFixes: 162792307\nTest: Unit test.\nChange-Id: Id3e71b054dd1c31343b7d1b77d2ab002dc5edde1\n"
    },
    {
      "commit": "7aa2e4a543372575ed23deb5feee285895757cf4",
      "tree": "20d4750a2012340e908c3a5bd543f2a9e06a7634",
      "parents": [
        "cf2253cb0948200309e81facc1a673926e555a17",
        "443f16c42aebfe9fe94a782889c8b78fea8e5c94"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 30 22:19:29 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 30 22:19:29 2020 +0000"
      },
      "message": "Merge \"Remove non-inclusive language from the transcoder.\""
    },
    {
      "commit": "443f16c42aebfe9fe94a782889c8b78fea8e5c94",
      "tree": "447a718c39425488955af1c05da1ef3347ca1c79",
      "parents": [
        "41ac4ced446869138f74d0e510b6e3b437fa84dd"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Thu Jul 30 13:13:21 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Thu Jul 30 13:13:21 2020 -0700"
      },
      "message": "Remove non-inclusive language from the transcoder.\n\nFixes: 162529149\nTest: Unit test.\nChange-Id: I401e018851473d4189bab6ae3a76d8d0502dca21\n"
    },
    {
      "commit": "b09aac27a243546e6ccf11596e66c56d07327af1",
      "tree": "79cfe87cd672d1b2ed680a276c43bef2dcdf9954",
      "parents": [
        "8f0b876fc10fecd817aa1f6a69646d9ce049e26a"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Jul 29 11:56:53 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Thu Jul 30 12:54:16 2020 -0700"
      },
      "message": "Transcoder: Improve video transcoding with audio passthrough performance\n\nMediaSampleWriter was stalling the video transcoding when processing\nchunks of audio samples at a time. Since the underlying muxer\nbuffers ~1 sec worth of data and interleaves tracks anyway the\nsample writer now prioritizes pulling samples from the track that is\nfarthest behind while making sure the tracks are kept reasonably\nin sync, i.e. max ~1 second divergence.\n\nThis change also raises the priority of the video transcoding thread\nsince that will be the bottleneck when audio is pased through.\n\nTest: Unit tests\nFixes: 160268606\nChange-Id: I004583b2a31a57882ea543072be321f9f1347508\n"
    },
    {
      "commit": "8f0b876fc10fecd817aa1f6a69646d9ce049e26a",
      "tree": "acb566958c6f37f5bf656f881d2ad6c205f07299",
      "parents": [
        "41ac4ced446869138f74d0e510b6e3b437fa84dd"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Thu Jul 23 17:12:45 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Fri Jul 24 16:41:15 2020 -0700"
      },
      "message": "Transcoder: Add initial high level benchmark test.\n\nBug: 160268606\nBug: 152091444\nTest: Verified accuracy by comparing against MediaTranscodingManager.java\nChange-Id: Ide514c86e0d9e50b96c7ef0ee1b88a4e30814684\n"
    },
    {
      "commit": "16a5521e05c6988ea58fb2f6ad4b71b47c78ead3",
      "tree": "0d384815cd7360f36e9a29c28e636c1c6a8fd8d6",
      "parents": [
        "60c555998cb2f154beab9c7115e7c472c7f0e001"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Tue Jul 14 15:59:58 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Jul 15 16:47:16 2020 -0700"
      },
      "message": "Transcoder: Fix crash in PassthroughTrackTranscoder\n\nBug: 160916699\nTest: PassthroughTrackTranscoder unit tests running with address sanitizer\nChange-Id: I2522f1eb2d5ed34ca3e6b43a81692334a82cea20\n"
    },
    {
      "commit": "cb7e4189cde70020917a928e6843154d1ad5edbe",
      "tree": "5d9cbd5440ec2b7388176e48861c28ea1050f28b",
      "parents": [
        "be1c43872cfa0d28d0ce62354946a95da0eac0c3",
        "e4716f23a95e1ce35e71b9b850b2cd3d2c0f20d5"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Tue Jul 14 18:34:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 14 18:34:55 2020 +0000"
      },
      "message": "Merge \"Transcoder: Fix video track transcoding crash.\""
    },
    {
      "commit": "e4716f23a95e1ce35e71b9b850b2cd3d2c0f20d5",
      "tree": "c8ff2109361341bb1ac5c6809bb4f5231391e0de",
      "parents": [
        "daec9b4d36d1fb06811097117bfd673677bf5de1"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Fri Jul 10 16:07:57 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Mon Jul 13 19:49:19 2020 -0700"
      },
      "message": "Transcoder: Fix video track transcoding crash.\n\nThe VideoTrackTranscoder had a bug where the encoder could\noutlive the transcoder object, because the encoder owns the\noutput buffers. This caused a crash when the encoder sent async\ncallbacks to the transcoder after it had been released. This fix\ngives the encoder a weak reference to the transcoder and gives\noutstanding buffers a strong reference to the encoder.\n\nFixes: 160711746\nTest: Transcoder unit tests (build_and_run_all_unit_tests.sh).\nTest: New unit test to trigger the crash before the fix.\nChange-Id: I8141591399b6cff642d2d322809d3254adbefaaf\n"
    },
    {
      "commit": "e2cdd1f534e024dfba9adb93d7d5654f9777ebdf",
      "tree": "f836bb327f332dcd6e8b05970d37ef427fffe552",
      "parents": [
        "daec9b4d36d1fb06811097117bfd673677bf5de1"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Tue Jul 07 17:29:26 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Jul 08 12:07:52 2020 -0700"
      },
      "message": "Transcoder: Add support for progress updates.\n\nProgress updates are delivered as long as any track\nin the file has a valid duration.\n\nFixes: 160277443\nTest: MediaSampleWriter and MediaTranscoder unit tests.\nChange-Id: I52bbf55cfd2445b98dfc4d9c9ae09bcf7de86a86\n"
    },
    {
      "commit": "f1ec7e488ed43c7236da740b49d244eb5c1c08f0",
      "tree": "4cd28f85da044a44d4882d4799f2028043f8a9db",
      "parents": [
        "790e9425594823ec9e8da1ef2302d74a0bc92798",
        "b55c5456228a5961438b39818feb021007f96963"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 06 20:59:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 20:59:49 2020 +0000"
      },
      "message": "Merge \"transcoder: initial version of pause/resume\""
    },
    {
      "commit": "42a971b20b5c3fbc3a2e93ba8edd89e9bd90a21c",
      "tree": "38dca47ec75a4d67fa21e9b9b06ac52c573944f4",
      "parents": [
        "10816453deadf911f4e1067f18ebaf060e8372b4"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Jul 01 16:41:11 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Mon Jul 06 12:51:04 2020 -0700"
      },
      "message": "Transcoder: Preserve source track duration.\n\nPreserve the source track\u0027s duration by sending an\nEOS sample with the appropriate PTS to the muxer.\nModified MediaSampleWriterTests to verify the extra\nEOS sample.\n\nBug: 159732935\nTest: MediaTranscoder and MediaSampleWriter unit tests.\nChange-Id: I6792eff8932db126e8734e5d3d6fe8aee2ffb4a1\n"
    },
    {
      "commit": "b55c5456228a5961438b39818feb021007f96963",
      "tree": "cfc16c00da8a80268d0765433b28c34f7e984a41",
      "parents": [
        "1ad0395323a38850fd9204ac9891e9b4779445a3"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jun 26 14:32:12 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Jul 06 12:00:11 2020 -0700"
      },
      "message": "transcoder: initial version of pause/resume\n\n- Add pause/resume in TranscoderWrapper, save paused state on pause\n  and use it to create new transcoder on resume.\n\nMisc fixes:\n\n- TranscoderWrapper::stop should only cancel transcoder if the stop\n  is for the currently running job. Scheduler could call stop to\n  cancel a job any time.\n- Don\u0027t hold TranscoderWrapper lock when running event runnable. If\n  the runnable calls back into scheduler, and scheduler may call\n  transcoder again and deadlock.\n- Don\u0027t report abort as error if the transcoder is cancelled explicitly.\n- Push decoder/encoder start as msgs, so that they could be skipped too\n  if the job is cancelled shortly after starts.\n\nTests:\nAdd tests for cancel/pause/resume with real transcoder.\n\nbug: 154734285\nbug: 154733948\ntest: unit testing\nChange-Id: I2b7d3da69df53b92ab351db455310799ba0e0e8f\n"
    },
    {
      "commit": "d6e4aec66184c1a7a78767113e2bf92df133dbfa",
      "tree": "0c48c3346ac574df068db7f9cc3f7c743b1e7432",
      "parents": [
        "1f16f12b608be724ede9c98de15af4e972532e80"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Jun 22 14:13:07 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Jun 22 15:58:25 2020 -0700"
      },
      "message": "transcoder: fix rotation handling\n\nTransfer rotation degree from source format to track format\nfor MediaSampleWriter, and setOrietationHint on the muxer.\nDuring transcoding using encoder/decoder, clear the rotation\ndegree so that the codec is guaranted to operate non-rotated.\n\nbug: 154734285\nbug: 159649977\nbug: 152091443\n\ntest: unit testing (updated test with rotation)\n\nChange-Id: I7e829ef777b1954d894411e8591a5e31ff36e275\n"
    },
    {
      "commit": "5855ee55158a87b133cb67c086f0530875baa2e8",
      "tree": "65d9d489cae63ee9fe8744788937bd97ea8b7fbe",
      "parents": [
        "f6388bd50e743eeeb56bd3f45a9e69bd14b62c1f"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Jun 22 11:41:25 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Jun 22 14:13:34 2020 -0700"
      },
      "message": "transcoder: add hevc-\u003eavc unit test and verify formats.\n\nbug: 154734285\nbug: 152091443\ntests: unit testing.\nChange-Id: If755df8e05e5e211b69869c7e0d8299138ff230c\n"
    },
    {
      "commit": "7f5f4281f960549b9fe7298d25f7163c1910c73c",
      "tree": "b184a127cedbb04bfb3ec9e7f5a73d404c27ba6b",
      "parents": [
        "63b79602739d2fb1d83947a0715f505ab0890ba2",
        "a2cc86bf8bd112fe07c190a4d774e70f50b6f0e0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 18 19:32:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:32:05 2020 +0000"
      },
      "message": "Merge \"transcoder: wait for actual encoder output format to start writer\""
    },
    {
      "commit": "a2cc86bf8bd112fe07c190a4d774e70f50b6f0e0",
      "tree": "eb7b876b7371a52f85c1757093635c0f2619f84b",
      "parents": [
        "425f5edba6ba21783ede6440e65e3fd97df52a23"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jun 17 16:56:49 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jun 18 11:09:38 2020 -0700"
      },
      "message": "transcoder: wait for actual encoder output format to start writer\n\nbug: 154734285\nbug: 158240484\n\ntest: unit tests. In particular:\n\nrun MediaTranscoderTests and MediaTranscodingServiceRealTests, and\ncheck the output files. Should play with proper aspect ratio on\nhost and device.\n\nChange-Id: I8254fd8bd42678a414cab5fb0f61c4ba56d6c114\n"
    },
    {
      "commit": "2ef2b43408ea383308e7631b5112bd1221211f97",
      "tree": "da708297f9725533fa7b815e8bc6dcce51a40584",
      "parents": [
        "8129d4eedf8d509a42bc9831f9009c450978da7d"
      ],
      "author": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Mon Jun 15 18:33:11 2020 -0700"
      },
      "committer": {
        "name": "hkuang",
        "email": "hkuang@google.com",
        "time": "Wed Jun 17 13:57:42 2020 -0700"
      },
      "message": "transcoding: Add more test assets for testing.\n\nAlso move the test file used by transocder to another folder in order\nto be reused by both transcoding service and transcoder for testing.\n\nBug: 145628554\nBug: 154734285\nTest: Unit test\n\nChange-Id: I61e16ab5deba70da71f4d23fc87157be2f3b3bca\n"
    },
    {
      "commit": "664692765fd0fdb1977a096dddeb340c48b0cf76",
      "tree": "d3c840f5b310786d9b5ed53e2e3c25fdc48d1cf7",
      "parents": [
        "425f5edba6ba21783ede6440e65e3fd97df52a23"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jun 04 16:51:55 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Jun 15 11:37:51 2020 -0700"
      },
      "message": "transcoding: hooking up real transcoder in service\n\nbug: 154734285\ntest: unit testing.\n\nChange-Id: Id7de72f86cac75f634276395d4b4be359f44dbc2\n"
    },
    {
      "commit": "308e91f504bfca90e9a6d17b9779203fc3a4a93b",
      "tree": "522682fa41f3ac1e787d3add8da158c17bb1f24d",
      "parents": [
        "19253093cffe6eedf4811870f9929936268c97fd"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jun 10 15:27:56 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jun 10 17:17:56 2020 -0700"
      },
      "message": "Transcoder: change src/dst to fd\n\nMediaTranscoder takes fd as input from upper level service.\n\nAlso, leave file delete to client, since service side can\u0027t do file\ncreate/delete. File opening is done by a callback into the app;\nit seems delete should just handled by app side itself.\n\nMinor refactor to reduce header pollution when included.\n\nbug: 154734285\nbug: 156003955, 152091443, 155918341\ntest: transcoder unit tests.\n\nChange-Id: I4eb8a7d9fea2ccb479f09888353ac4e65bac16f8\n"
    },
    {
      "commit": "cab39d81e06bf72991435ef2042e8436819f1999",
      "tree": "4f20f19bd3b54c0d083f08d9142110e3054af09b",
      "parents": [
        "63b7e570a5ee9d48b886c4c18306bb26d5f2a107"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Thu May 14 16:32:21 2020 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jun 03 14:25:12 2020 -0700"
      },
      "message": "Transcoder: Added MediaTranscoder and unit test.\n\nMediaTranscoder is the API for the native transcoding library.\n\nTest: Unit tests.\nBug: 156003955, 152091443, 155918341\nChange-Id: I24b52d174db0faecea8f331ef6d8a3dc4e473c4e\n"
    },
    {
      "commit": "a85df7fdf8fae10ecad165d6427e36ae269a0136",
      "tree": "b1b7ec214e4f62fda0eddc4a1dbf7abbfded74ef",
      "parents": [
        "c6221dbed39f3a1270329f808ae417bdda9aaf8b"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Thu Feb 20 16:32:04 2020 -0800"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Fri May 15 17:42:25 2020 -0700"
      },
      "message": "Transcoder: Added MediaSampleWriter and unit tests.\n\nMediaSampleWriter pulls samples from its input sample queues,\nin time interleaved order, and adds them to its muxer.\n\nTest: Unit test (build_and_run_all_unit_tests.sh).\nBug: 156004594\nChange-Id: I7f0085e9ef6ec50dca7d30c6a86709b961056d1b\n"
    },
    {
      "commit": "c6221dbed39f3a1270329f808ae417bdda9aaf8b",
      "tree": "54b6ffb35118063461dcf59c838f570ac50fb6a1",
      "parents": [
        "da6850898bbd65edc388cc4f1d536f5d3a6ecc86"
      ],
      "author": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed Mar 18 14:46:22 2020 -0700"
      },
      "committer": {
        "name": "Linus Nilsson",
        "email": "lnilsson@google.com",
        "time": "Wed May 06 16:04:38 2020 -0700"
      },
      "message": "Transcoder: Added PassthroughTrackTranscoder and unit tests.\n\nPassthroughTrackTranscoder is a MediaTrackTranscoder implementation for passthrough mode.\nIt manages an internal buffer pool to reuse buffers.\nThis commit also ensures that it is safe to hold on to dequeued MediaSamples\nafter the MediaTrackTranscoder is released.\n\nTest: Unit test.\nBug: 152091443\nChange-Id: I876957647c5fee0557caf465227ff42cdb0eceee\n"
    },
    {
      "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": "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": "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": "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"
    }
  ]
}
