Expand description
PIAF — a Rust library for reading and interpreting EDID display capability data.
The core pipeline is:
parse_edid— validate and decode raw bytes intoParsedEdidRef(zero-copy).capabilities_from_edid— run extension handlers to produceDisplayCapabilities.
§Quick start
use piaf::{parse_edid, capabilities_from_edid, ExtensionLibrary};
let bytes = std::fs::read("/sys/class/drm/card0-HDMI-A-1/edid").unwrap();
let library = ExtensionLibrary::with_standard_handlers();
let parsed = parse_edid(&bytes, &library).unwrap();
let caps = capabilities_from_edid(&parsed, &library);
println!("{:?}", caps.display_name);Re-exports§
pub use model::ExtensionData;pub use model::ExtensionHandler;pub use model::ParseWarning;pub use model::AnalogColorType;pub use model::AnalogSyncLevel;pub use model::Chromaticity;pub use model::ChromaticityPoint;pub use model::ColorBitDepth;pub use model::ColorManagementData;pub use model::CvtAspectRatio;pub use model::CvtAspectRatios;pub use model::CvtScaling;pub use model::CvtSupportParams;pub use model::DcmChannel;pub use model::DigitalColorEncoding;pub use model::DisplayCapabilities;pub use model::DisplayFeatureFlags;pub use model::DisplayGamma;pub use model::EdidError;pub use model::EdidSource;pub use model::EdidVersion;pub use model::EdidWarning;pub use model::ExtensionLibrary;pub use model::ExtensionMetadata;pub use model::ExtensionTagRegistry;pub use model::GtfSecondaryParams;pub use model::KnownExtensions;pub use model::ManufactureDate;pub use model::ManufacturerId;pub use model::ModeSink;pub use model::MonitorString;pub use model::ParsedEdid;pub use model::ParsedEdidRef;pub use model::ScreenSize;pub use model::StaticDisplayCapabilities;pub use model::StaticExtensionHandler;pub use model::StereoMode;pub use model::SyncDefinition;pub use model::TimingFormula;pub use model::VideoInputFlags;pub use model::VideoInterface;pub use model::VideoMode;pub use model::WhitePoint;pub use parser::parse_edid;pub use parser::parse_edid_owned;pub use capabilities::Cea861Flags;pub use capabilities::capabilities_from_edid;pub use capabilities::capabilities_from_edid_static;pub use capabilities::AudioFormat;pub use capabilities::AudioFormatInfo;pub use capabilities::AudioSampleRates;pub use capabilities::Cea861Capabilities;pub use capabilities::ColorimetryBlock;pub use capabilities::ColorimetryFlags;pub use capabilities::DtcPointEncoding;pub use capabilities::HdmiAudioBlock;pub use capabilities::HdmiDscMaxSlices;pub use capabilities::HdmiForumDsc;pub use capabilities::HdmiForumFrl;pub use capabilities::HdmiForumSinkCap;pub use capabilities::HdmiVsdb;pub use capabilities::HdmiVsdbFlags;pub use capabilities::HdrDynamicMetadataDescriptor;pub use capabilities::HdrEotf;pub use capabilities::HdrStaticMetadata;pub use capabilities::InfoFrameDescriptor;pub use capabilities::RoomConfigurationBlock;pub use capabilities::ShortAudioDescriptor;pub use capabilities::SpeakerAllocation;pub use capabilities::SpeakerAllocationFlags;pub use capabilities::SpeakerAllocationFlags2;pub use capabilities::SpeakerAllocationFlags3;pub use capabilities::SpeakerLocationEntry;pub use capabilities::T7VtdbBlock;pub use capabilities::T8VtdbBlock;pub use capabilities::T10VtdbBlock;pub use capabilities::T10VtdbEntry;pub use capabilities::VendorSpecificBlock;pub use capabilities::VesaDisplayDeviceBlock;pub use capabilities::VesaTransferCharacteristic;pub use capabilities::VideoCapability;pub use capabilities::VideoCapabilityFlags;pub use capabilities::VtbExtBlock;pub use capabilities::infoframe_type;pub use capabilities::CEA861_HANDLER;pub use capabilities::Cea861Handler;pub use capabilities::STANDARD_HANDLERS;
Modules§
- capabilities
- Capability extraction from a
ParsedEdid. - model
- Types for the EDID data model. Data model types for parsed EDID data and display capabilities.
- parser
- EDID byte-level parser.