[PR #895] [MERGED] Refactor raw DVD reading #1183

Open
opened 2026-01-29 15:43:25 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/aaru-dps/Aaru/pull/895
Author: @FakeShemp
Created: 1/11/2026
Status: Merged
Merged: 1/11/2026
Merged by: @claunia

Base: develHead: fakeshemp/dvd-raw-refactor


📝 Commits (7)

  • 8f1a6b3 Rework device reports to try other commands if one fail and log them
  • 8429941 Try to identify stride
  • ec4c99a Enable reading raw switch
  • 27fd729 Move more methods to ReadBuffer
  • 88bd087 Enable other drives that can read raw
  • 6fb6535 Try to dynamically figure out the buffer size
  • 8ebfd8c Rename Lite-On commands to ReadBuffer3C

📊 Changes

21 files changed (+7042 additions, -423 deletions)

View changed files

📝 Aaru.CommonTypes/Metadata/DeviceReport.cs (+22 -4)
📝 Aaru.Core/Devices/Dumping/Sbc/Dump.cs (+2 -2)
📝 Aaru.Core/Devices/Dumping/Sbc/Error.cs (+1 -1)
📝 Aaru.Core/Devices/Dumping/Sbc/Trim.cs (+1 -1)
📝 Aaru.Core/Devices/ReaderSCSI.cs (+18 -19)
📝 Aaru.Core/Devices/Report/MMC.cs (+133 -9)
📝 Aaru.Database/Context.cs (+6 -0)
Aaru.Database/Migrations/20260110151445_AddCompressedBufferReadToTestedMedia.Designer.cs (+2975 -0)
Aaru.Database/Migrations/20260110151445_AddCompressedBufferReadToTestedMedia.cs (+48 -0)
Aaru.Database/Migrations/20260111083646_RenameLiteOnToReadBuffer3C.Designer.cs (+2975 -0)
Aaru.Database/Migrations/20260111083646_RenameLiteOnToReadBuffer3C.cs (+38 -0)
📝 Aaru.Database/Migrations/AaruContextModelSnapshot.cs (+45 -7)
📝 Aaru.Devices/Device/ScsiCommands/HL-DT-ST.cs (+0 -71)
Aaru.Devices/Device/ScsiCommands/LiteOn.cs (+0 -293)
Aaru.Devices/Device/ScsiCommands/ReadBuffer.cs (+730 -0)
📝 Aaru.Localization/Core.Designer.cs (+12 -0)
📝 Aaru.Localization/Core.resx (+6 -0)
📝 Aaru.Localization/UI.Designer.cs (+12 -0)
📝 Aaru.Localization/UI.resx (+6 -0)
📝 Aaru/Commands/Device/DeviceReport.cs (+6 -12)

...and 1 more files

📄 Description

Types of changes

This reworks the 3C READ BUFFER SCSI command to be more stable and support more drives.

  • Add a command switch for dumping raw; --raw
  • Try to identify how the buffer reads should be done dynamically. I've tested on my drives but I seem to only have drives that support either no raw, 2064 byte sectors, or full 2384 sectors with full ECC. Hopefully others should work, but this is untested.
  • If the buffer cannot be identified, during a device report, a sample of buffers are saved for later analysis.
  • Rename the Lite-On commands to RadBuffer3C as other drives should be supported now. Lite-On drives still seem to be the fastest.
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • New filesystem, test images in [url]
  • New media image, test images in [url]
  • New partition scheme, test images in [url]
  • Breaking change (fix or feature that would cause existing functionality to change)
  • I have read the CONTRIBUTING document.
  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/aaru-dps/Aaru/pull/895 **Author:** [@FakeShemp](https://github.com/FakeShemp) **Created:** 1/11/2026 **Status:** ✅ Merged **Merged:** 1/11/2026 **Merged by:** [@claunia](https://github.com/claunia) **Base:** `devel` ← **Head:** `fakeshemp/dvd-raw-refactor` --- ### 📝 Commits (7) - [`8f1a6b3`](https://github.com/aaru-dps/Aaru/commit/8f1a6b3f002ae56b09eb6fe0349facf4158e9790) Rework device reports to try other commands if one fail and log them - [`8429941`](https://github.com/aaru-dps/Aaru/commit/8429941faf0cc07b5f9b18798f8a04cfbffd8939) Try to identify stride - [`ec4c99a`](https://github.com/aaru-dps/Aaru/commit/ec4c99a8ab8cf3a5494d4a4270dc46c0374de1cc) Enable reading raw switch - [`27fd729`](https://github.com/aaru-dps/Aaru/commit/27fd729c9a323901f5691f22597e83b29f4f9d43) Move more methods to ReadBuffer - [`88bd087`](https://github.com/aaru-dps/Aaru/commit/88bd0877aeeefdc2e2ce6cb380cb0b6f1739395a) Enable other drives that can read raw - [`6fb6535`](https://github.com/aaru-dps/Aaru/commit/6fb6535b6a3dd32b06b02f027a8ec9600e4a970b) Try to dynamically figure out the buffer size - [`8ebfd8c`](https://github.com/aaru-dps/Aaru/commit/8ebfd8c810d1d4a39a921fb7bca957dd01cc6c9a) Rename Lite-On commands to ReadBuffer3C ### 📊 Changes **21 files changed** (+7042 additions, -423 deletions) <details> <summary>View changed files</summary> 📝 `Aaru.CommonTypes/Metadata/DeviceReport.cs` (+22 -4) 📝 `Aaru.Core/Devices/Dumping/Sbc/Dump.cs` (+2 -2) 📝 `Aaru.Core/Devices/Dumping/Sbc/Error.cs` (+1 -1) 📝 `Aaru.Core/Devices/Dumping/Sbc/Trim.cs` (+1 -1) 📝 `Aaru.Core/Devices/ReaderSCSI.cs` (+18 -19) 📝 `Aaru.Core/Devices/Report/MMC.cs` (+133 -9) 📝 `Aaru.Database/Context.cs` (+6 -0) ➕ `Aaru.Database/Migrations/20260110151445_AddCompressedBufferReadToTestedMedia.Designer.cs` (+2975 -0) ➕ `Aaru.Database/Migrations/20260110151445_AddCompressedBufferReadToTestedMedia.cs` (+48 -0) ➕ `Aaru.Database/Migrations/20260111083646_RenameLiteOnToReadBuffer3C.Designer.cs` (+2975 -0) ➕ `Aaru.Database/Migrations/20260111083646_RenameLiteOnToReadBuffer3C.cs` (+38 -0) 📝 `Aaru.Database/Migrations/AaruContextModelSnapshot.cs` (+45 -7) 📝 `Aaru.Devices/Device/ScsiCommands/HL-DT-ST.cs` (+0 -71) ➖ `Aaru.Devices/Device/ScsiCommands/LiteOn.cs` (+0 -293) ➕ `Aaru.Devices/Device/ScsiCommands/ReadBuffer.cs` (+730 -0) 📝 `Aaru.Localization/Core.Designer.cs` (+12 -0) 📝 `Aaru.Localization/Core.resx` (+6 -0) 📝 `Aaru.Localization/UI.Designer.cs` (+12 -0) 📝 `Aaru.Localization/UI.resx` (+6 -0) 📝 `Aaru/Commands/Device/DeviceReport.cs` (+6 -12) _...and 1 more files_ </details> ### 📄 Description ## Types of changes <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> This reworks the 3C READ BUFFER SCSI command to be more stable and support more drives. * Add a command switch for dumping raw; `--raw` * Try to identify how the buffer reads should be done dynamically. I've tested on my drives but I seem to only have drives that support either no raw, 2064 byte sectors, or full 2384 sectors with full ECC. Hopefully others should work, but this is untested. * If the buffer cannot be identified, during a device report, a sample of buffers are saved for later analysis. * Rename the Lite-On commands to RadBuffer3C as other drives should be supported now. Lite-On drives still seem to be the fastest. - [x] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] New filesystem, test images in [url] - [ ] New media image, test images in [url] - [ ] New partition scheme, test images in [url] - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] I have read the **CONTRIBUTING** document. - [x] My code follows the code style of this project. - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. - [ ] I have added tests to cover my changes. - [ ] All new and existing tests passed. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 15:43:25 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aaru-dps/Aaru-aaru-dps#1183