Skip to content

Fix scan chart glitches - #80

Open
RevokeTime wants to merge 2 commits into
speed47:masterfrom
RevokeTime:fix-scan-chart-glitches
Open

RevokeTime wants to merge 2 commits into
speed47:masterfrom
RevokeTime:fix-scan-chart-glitches

Conversation

@RevokeTime

Copy link
Copy Markdown

Mitigate #76. If an error occurs while drawing the chart, the qscan will automatically wait and retry, otherwise break the process to prevent drawing errors.

…egression (speed47#76)

- LiteOn plugin:
  - Remove harmful uninitialized MMC_SEEK in cmd_bd_errc_block that caused
    the laser pickup to seek back to LBA 0 upon receiving transient 0 responses.
  - Set CDB allocation length (Byte 8 = 0x10) for 0xF3 0x0E in cmd_bd_errc_init
    and cmd_bd_errc_block.
  - Implement polling retry (with 1ms sleep, up to 200ms) for both DVD and BD
    ERRC blocks, returning error if the drive fails to advance.
- GUI:
  - Fix BD ERRC average calculation using BDErrcAVG and di.bd.lba.
  - Add defensive guard against out-of-order/backwards LBA points in ERRC stream.

Closes speed47#76
…litches across CD, DVD, and BD (speed47#76)

- plugins/liteon:
  - Set CDB allocation length (Byte 8 = 0x10) for 0xF3 0x0E in cmd_cd_errc_init_new
    and cmd_cd_errc_block_new.
  - Implement adaptive polling retry (up to 1500ms for 1X CD) and monotonicity
    checks (nlba > lba), returning error on stall or backward regression.
  - Increase retry timeout from 200ms to 500ms for DVD and BD ERRC blocks.

- lib/qpxscan:
  - Guard calc_cur_speed and show_avg_speed against non-positive sector counts
    or near-zero elapsed time to eliminate negative speed spikes and division by zero.
  - Add LBA regression abort (lba < lbao) and ensure break on scan_block failure
    across all scan loops (run_cd_errc, run_cd_jb, run_dvd_errc, run_dvd_jb, run_bd_errc).
  - Add symmetric stale polling detection (lba == lbao with stale_count and msleep(5))
    to run_cd_jb and run_dvd_jb.

- gui:
  - Discard out-of-order LBA data points in device::qscan_process_test prior to
    updating min/max statistics and series for ERRC (CD/DVD), JB, FT, and RT/WT tests.
  - Prevent graph line reversals, progress jump-backs, and statistic contamination.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant