- IOStream::keys() default returns DecryptKeys::None - IsoStream and DiscStream override with real AACS/CSS keys - Pipeline calls input.keys() instead of separate scan_keys() - Streams are self-contained: read bytes + provide keys
- IOStream::keys() default returns DecryptKeys::None - IsoStream and DiscStream override with real AACS/CSS keys - Pipeline calls input.keys() instead of separate scan_keys() - Streams are self-contained: read bytes + provide keys