dholroyd / h264-reader

Rust reader for H264 bitsream syntax
Apache License 2.0
72 stars 25 forks source link

Bounds checks for many fields #66

Open dholroyd opened 6 months ago

dholroyd commented 6 months ago

Turns out to be more complicated than I expected due to the need to refer to a table of values from the spec when calculating the max value for max_dec_frame_buffering.

log2_max_mv_length_horizontal and log2_max_mv_length_vertical are not checked to the [0, 15] limits in the most recent spec because older specs said the restriction was [0, 16] and real world test data appears to use the value 16.

Other changes included,

Fixes #55 and #58

github-actions[bot] commented 6 months ago

🐰Bencher

ReportFri, March 1, 2024 at 07:28:22 UTC
Projecth264-reader
Branch66/merge
Testbedubuntu-22.04
BenchmarkEstimated CyclesEstimated Cycles Results
estimated cycles
InstructionsInstructions Results
instructions
L1 AccessesL1 Accesses Results
accesses
L2 AccessesL2 Accesses Results
accesses
RAM AccessesRAM Accesses Results
accesses
Total AccessesTotal Accesses Results
total-accesses
ci_bench::ci::reader read:setup_video("big_buck_bunny_1080p_24f...➖ (view plot)16653199.000➖ (view plot)8205418.000➖ (view plot)10769774.000➖ (view plot)16841.000➖ (view plot)165692.000➖ (view plot)10952307.000

Bencher - Continuous Benchmarking
View Public Perf Page
Docs | Repo | Chat | Help
github-actions[bot] commented 6 months ago

🐰Bencher

ReportFri, March 1, 2024 at 18:56:06 UTC
Projecth264-reader
Branch66/merge
Testbedlocalhost
BenchmarkEstimated CyclesEstimated Cycles Results
estimated cycles | (Δ%)
Estimated Cycles Lower Boundary
estimated cycles | (%)
InstructionsInstructions Results
instructions
L1 AccessesL1 Accesses Results
accesses
L2 AccessesL2 Accesses Results
accesses
RAM AccessesRAM Accesses Results
accesses
Total AccessesTotal Accesses Results
total-accesses
ci_bench::ci::reader read:setup_video("big_buck_bunny_1080p_24f...✅ (view plot)16648266.000 (+0.04%)14976912.000 (89.96%)➖ (view plot)8205445.000➖ (view plot)10771081.000➖ (view plot)15558.000➖ (view plot)165697.000➖ (view plot)10952336.000

Bencher - Continuous Benchmarking
View Public Perf Page
Docs | Repo | Chat | Help