Skip to main content

Crate piaf

Crate piaf 

Source
Expand description

PIAF — a Rust library for reading and interpreting EDID display capability data.

The core pipeline is:

  1. parse_edid — validate and decode raw bytes into ParsedEdidRef (zero-copy).
  2. capabilities_from_edid — run extension handlers to produce DisplayCapabilities.

§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.