{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":731414168,"defaultBranch":"main","name":"virtio-media","ownerLogin":"chromeos","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-12-14T03:04:55.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/55198424?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1722688886.0","currentOid":""},"activityList":{"items":[{"before":"e478f08096154b42419c1052780f14b84fe1c44c","after":"8b6abf5bb417343a5124978443fd72439c61492c","ref":"refs/heads/main","pushedAt":"2024-09-11T06:40:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: remove requirement for AsRef and AsMut for guest memory ranges\n\nWe don't need to have CPU-visible slices, especially since constructing\nthem while satisfying the non-mutation requirement of\n`slice::from_raw_parts` might be tricky. Replace these requirements by a\nnew trait that just returns pointers.","shortMessageHtmlLink":"device: remove requirement for AsRef and AsMut for guest memory ranges"}},{"before":"2ec63d67261256e37bba05d4d18912fd6fa02874","after":"e478f08096154b42419c1052780f14b84fe1c44c","ref":"refs/heads/main","pushedAt":"2024-08-03T12:41:26.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"v0.0.2","shortMessageHtmlLink":"v0.0.2"}},{"before":"1cb4ccad67e6312d1e664a09f56168518c102c34","after":"2ec63d67261256e37bba05d4d18912fd6fa02874","ref":"refs/heads/main","pushedAt":"2024-07-12T08:17:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: Add cargo_embargo.json and Android.bp\n\nThis enables the crate to be built on Android.","shortMessageHtmlLink":"device: Add cargo_embargo.json and Android.bp"}},{"before":"8605dd019e71221b27a94c4383545de5dc08f61a","after":"1cb4ccad67e6312d1e664a09f56168518c102c34","ref":"refs/heads/main","pushedAt":"2024-07-12T07:55:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: Add cargo_embargo.json and Android.bp\n\nThis enables the crate to be built on Android.","shortMessageHtmlLink":"device: Add cargo_embargo.json and Android.bp"}},{"before":"4d38ad403230c2adc1c9e5b4a34198756c6fbb34","after":"8605dd019e71221b27a94c4383545de5dc08f61a","ref":"refs/heads/main","pushedAt":"2024-07-12T07:46:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: Add cargo_embargo.json and Android.bp\n\nThis enables the crate to be built on Android.","shortMessageHtmlLink":"device: Add cargo_embargo.json and Android.bp"}},{"before":"c3db155a0395cc649be7bb09c57e549fe4924651","after":"4d38ad403230c2adc1c9e5b4a34198756c6fbb34","ref":"refs/heads/main","pushedAt":"2024-07-12T07:21:52.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: Add cargo_embargo.json and Android.bp\n\nThis enables the crate to be built on Android.","shortMessageHtmlLink":"device: Add cargo_embargo.json and Android.bp"}},{"before":"067b63958d1f3dec6f025d438b72107743d8210f","after":"c3db155a0395cc649be7bb09c57e549fe4924651","ref":"refs/heads/main","pushedAt":"2024-07-10T04:17:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: update to v4l2r ToT","shortMessageHtmlLink":"device: update to v4l2r ToT"}},{"before":"2f505a6e2c0c21d4942f10c3b7f92ad87566e647","after":"067b63958d1f3dec6f025d438b72107743d8210f","ref":"refs/heads/main","pushedAt":"2024-06-11T13:49:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: add first version of the stateful decoder device\n\nAdd a device that implements the V4L2 stateful decoder specification. It\ntakes care of interpreting the V4L2 decoding protocol and delegates the\nactual decoding work to a backend, which has a much simpler interface.\n\nThe device is still perfectible, but can do basic decoding flawlessly so\nwe will improve it in follow-up CLs.","shortMessageHtmlLink":"device: add first version of the stateful decoder device"}},{"before":"fa802776b66bd803f99b85b8bdaee0006a2ca53c","after":"2f505a6e2c0c21d4942f10c3b7f92ad87566e647","ref":"refs/heads/main","pushedAt":"2024-06-11T13:49:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: add first version of the stateful decoder devices\n\nAdd a device that implements the V4L2 stateful decoder specification. It\ntakes care of interpreting the V4L2 decoding protocol and delegates the\nactual decoding work to a backend, which has a much simpler interface.\n\nThe device is still perfectible, but can do basic decoding flawlessly so\nwe will improve it in follow-up CLs.","shortMessageHtmlLink":"device: add first version of the stateful decoder devices"}},{"before":"33e8d2897c388288ea6bc7a6917134b5c97d948e","after":"fa802776b66bd803f99b85b8bdaee0006a2ca53c","ref":"refs/heads/main","pushedAt":"2024-06-06T04:09:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: replace Memfd crate with our own implementation\n\nThe Memfd crate is useful to provide backing for MMAP buffers, but it\nalso pulls in more dependencies than we would like. Since memfd is\ntrivial to use, add our own small implementation that covers our needs\nand remove the dependency.","shortMessageHtmlLink":"device: replace Memfd crate with our own implementation"}},{"before":"c6b51d558b76fab454983c237e5bfa0dd6e756b0","after":"33e8d2897c388288ea6bc7a6917134b5c97d948e","ref":"refs/heads/main","pushedAt":"2024-06-05T05:59:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"TRY_IT_OUT: pick latest crosvm patch\n\nWithout this we will have a protocol mismatch between device and driver.","shortMessageHtmlLink":"TRY_IT_OUT: pick latest crosvm patch"}},{"before":"4dc7add68c89dd5c8b2d949ac77118d1193af6b1","after":"c6b51d558b76fab454983c237e5bfa0dd6e756b0","ref":"refs/heads/main","pushedAt":"2024-06-05T05:48:11.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device & driver: use offset in SHM region 0 instead of guest physical addresses for MMAP buffers mapping\n\nThe virtio specification clearly specifies that \"References into shared\nmemory regions are represented as offsets from the beginning of the\nregion instead of absolute memory addresses\". Our current behavior is\nthus invalid. Moreover using guest addresses makes no sense in the\ncontext of a vhost-user device.\n\nFix this by using offsets into the first shared memory region instead of\nguest physical addresses with the VIRTIO_MEDIA_CMD_MMAP and\nVIRTIO_MEDIA_CMD_MUNMAP commands, and making the driver detect the\nregion and use its start address as the base for MMAP buffers address.","shortMessageHtmlLink":"device & driver: use offset in SHM region 0 instead of guest physical…"}},{"before":"cb9823070d92f2f0ac9f8775e8467d5841e797ed","after":"4dc7add68c89dd5c8b2d949ac77118d1193af6b1","ref":"refs/heads/main","pushedAt":"2024-06-02T08:47:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device/v4l2_device_proxy: fix clippy warning","shortMessageHtmlLink":"device/v4l2_device_proxy: fix clippy warning"}},{"before":"58ccdc65381b4fb5d47d6a0e3e21fb283108b37d","after":"cb9823070d92f2f0ac9f8775e8467d5841e797ed","ref":"refs/heads/main","pushedAt":"2024-05-31T06:25:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"decoder/v4l2_device_proxy: use proxy epoll for session polling\n\nThe semantics of polling a V4L2 device were leaked into the public\nSessionPoller trait, which required working with a V4l2Device and\nenabling or disabling the polling of CAPTURE buffers. This was inelegant\nand confusing, since this requirement is specific to the proxy device.\n\nImprove this by moving the V4L2 specific parts into the proxy device,\nand using a proxy epoll FD to signal the SessionPoller. This makes the\nproxy device work with simpler semantics (the FD signals it is readable\nwhen there are pending events) and allows us to use SessionPoller with\nother devices as well.","shortMessageHtmlLink":"decoder/v4l2_device_proxy: use proxy epoll for session polling"}},{"before":"429de05b42ab21495e69b0412bc98ff448c5512c","after":"58ccdc65381b4fb5d47d6a0e3e21fb283108b37d","ref":"refs/heads/main","pushedAt":"2024-05-29T08:03:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device/ioctl: make getter ioctl handlers take non-mutable reference to the session\n\nThese are just reporting, so we shouldn't need to modify the session.","shortMessageHtmlLink":"device/ioctl: make getter ioctl handlers take non-mutable reference t…"}},{"before":"fbc48855d9f2d562c9da0069c2e0a434fb8d45a9","after":"429de05b42ab21495e69b0412bc98ff448c5512c","ref":"refs/heads/main","pushedAt":"2024-05-23T08:59:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"TRY_IT_OUT: add instructions for proxying a host V4L2 device","shortMessageHtmlLink":"TRY_IT_OUT: add instructions for proxying a host V4L2 device"}},{"before":"2ee9da7024898747bb1b8832dc65e0c5a2ec16d8","after":"fbc48855d9f2d562c9da0069c2e0a434fb8d45a9","ref":"refs/heads/main","pushedAt":"2024-05-23T08:18:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"driver: fix void pointer dereference warning","shortMessageHtmlLink":"driver: fix void pointer dereference warning"}},{"before":"a4a878065257fcd8b340b30c7311f30138237ea6","after":"2ee9da7024898747bb1b8832dc65e0c5a2ec16d8","ref":"refs/heads/main","pushedAt":"2024-05-21T07:43:27.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: update to v4l2r ToT\n\nSigned-off-by: Alexandre Courbot ","shortMessageHtmlLink":"device: update to v4l2r ToT"}},{"before":"12a9ea15adb209622e1829439e8e8462e83f9b5e","after":"a4a878065257fcd8b340b30c7311f30138237ea6","ref":"refs/heads/main","pushedAt":"2024-05-13T07:22:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"update to v4l2r ToT","shortMessageHtmlLink":"update to v4l2r ToT"}},{"before":"c84074d52fa9422baf29346f27a22f67fb470316","after":"12a9ea15adb209622e1829439e8e8462e83f9b5e","ref":"refs/heads/main","pushedAt":"2024-05-13T07:02:00.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"simple_device: use V4l2Buffer to represent internal state\n\nThis is more efficient, and makes it easier to communicate a buffer's\nstate with the guest.","shortMessageHtmlLink":"simple_device: use V4l2Buffer to represent internal state"}},{"before":"b47a73a6b13609dd3026583235ccfceca95e4c9e","after":"c84074d52fa9422baf29346f27a22f67fb470316","ref":"refs/heads/main","pushedAt":"2024-05-01T08:15:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: use OwnedFd/BorrowedFd instead of File for MMAP buffer mappings","shortMessageHtmlLink":"device: use OwnedFd/BorrowedFd instead of File for MMAP buffer mappings"}},{"before":"359011ef201c443a141b285b6c9267aa3dd9f77e","after":"b47a73a6b13609dd3026583235ccfceca95e4c9e","ref":"refs/heads/main","pushedAt":"2024-05-01T07:14:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device: do not let mmap/munmap hooks write their response\n\nResponse writing can be done by the global handler. The hooks just need\nto return a success or failure status.","shortMessageHtmlLink":"device: do not let mmap/munmap hooks write their response"}},{"before":"32e0ba6ec6bf662352276958022c2231dee4778b","after":"359011ef201c443a141b285b6c9267aa3dd9f77e","ref":"refs/heads/main","pushedAt":"2024-05-01T03:44:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"update v4l2r to v0.0.2","shortMessageHtmlLink":"update v4l2r to v0.0.2"}},{"before":"acb4b9e810dc771ca756c4f26f665445dffd1059","after":"32e0ba6ec6bf662352276958022c2231dee4778b","ref":"refs/heads/main","pushedAt":"2024-05-01T00:37:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"update v4l2r to v0.0.2","shortMessageHtmlLink":"update v4l2r to v0.0.2"}},{"before":"0822cf9262fcf5b0666b461a492255e07a112151","after":"acb4b9e810dc771ca756c4f26f665445dffd1059","ref":"refs/heads/main","pushedAt":"2024-04-30T14:36:09.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"device/simple_device: use mmap manager offset allocator\n\nUse the mmap manager's allocator instead of trying to compute the\nbuffers' offsets ourselves.","shortMessageHtmlLink":"device/simple_device: use mmap manager offset allocator"}},{"before":"cf68ec0882be334d79d8c1682c674980c1fdd716","after":"0822cf9262fcf5b0666b461a492255e07a112151","ref":"refs/heads/main","pushedAt":"2024-04-25T07:05:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"ioctl: pass validated queue to s_fmt and try_fmt hooks\n\nImplementations will typically re-parse the queue type, so just pass it\nto avoid duplicate validation.","shortMessageHtmlLink":"ioctl: pass validated queue to s_fmt and try_fmt hooks"}},{"before":"29e84e2d791920d16cf21c36ce79d09453bcd364","after":"cf68ec0882be334d79d8c1682c674980c1fdd716","ref":"refs/heads/main","pushedAt":"2024-03-18T07:26:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"TRY_IT_OUT: remove command-line prompt on guest commands","shortMessageHtmlLink":"TRY_IT_OUT: remove command-line prompt on guest commands"}},{"before":"3e3dd3036ad3f78af34f8357ccda86a25447ca03","after":"29e84e2d791920d16cf21c36ce79d09453bcd364","ref":"refs/heads/main","pushedAt":"2024-03-18T07:25:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"TRY_IT_OUT: remove command-line prompt on guest commands","shortMessageHtmlLink":"TRY_IT_OUT: remove command-line prompt on guest commands"}},{"before":"5aca8f37fe7c9b35300c2748f902c8ff350407fb","after":"3e3dd3036ad3f78af34f8357ccda86a25447ca03","ref":"refs/heads/main","pushedAt":"2024-03-18T07:22:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"README: fix link to TRY_IT_OUT document","shortMessageHtmlLink":"README: fix link to TRY_IT_OUT document"}},{"before":"3ce51ccffcd0e7348f39184a6b483a105d4f2efe","after":"5aca8f37fe7c9b35300c2748f902c8ff350407fb","ref":"refs/heads/main","pushedAt":"2024-03-18T07:15:04.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"Gnurou","name":"Alexandre Courbot","path":"/Gnurou","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/148255?s=80&v=4"},"commit":{"message":"Add TRY_IT_OUT.md tutorial that explains how to quickly try the project","shortMessageHtmlLink":"Add TRY_IT_OUT.md tutorial that explains how to quickly try the project"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xMVQwNjo0MDowMS4wMDAwMDBazwAAAASy1tL5","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xMVQwNjo0MDowMS4wMDAwMDBazwAAAASy1tL5","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMy0xOFQwNzoxNTowNC4wMDAwMDBazwAAAAQYPC9N"}},"title":"Activity · chromeos/virtio-media"}