pgs_parse/
lib.rs

1//! # PGS Parsing Library
2//!
3//! This library provides functionality for parsing PGS (Presentation Graphic Stream) subtitles,
4//! commonly used in Blu-ray media. It defines various modules and components needed for reading,
5//! decoding, and processing PGS files.
6//!
7//! ### Example Usage
8//! ```rust
9//! use pgs_parse::PgsParser;
10//!
11//! let parser = PgsParser::parse("subtitle.sup");
12//! match parser {
13//!     Ok(parser) => {
14//!         let ds = parser.get_display_sets();
15//!         // ...
16//!     },
17//!     Err(err) => {
18//!         // ...
19//!     }
20//! }
21//! ```
22
23mod pgs_error;
24mod pgs_decode_rle;
25mod pgs_read;
26mod pgs_memory_buffer;
27mod pgs_const;
28mod pgs_file;
29mod pgs_segment_type;
30mod pgs_segment_header;
31mod pgs_segment;
32mod pgs_pcs_segment;
33mod pgs_wds_segment;
34mod pgs_pds_segment;
35mod pgs_ods_segment;
36mod pgs_display_set;
37mod pgs_reader;
38mod pgs_parser;
39
40pub use pgs_read::{
41    PgsSeek,
42    PgsRead
43};
44pub use pgs_memory_buffer::{
45    BigEndian, LittleEndian, ReadBytes, ByteOrder,
46    PgsMemoryBuffer
47};
48pub use pgs_segment_type::PgsSegmentType;
49pub use pgs_file::PgsFile;
50pub use pgs_segment_header::PgsSegmentHeader;
51pub use pgs_segment::PgsSegment;
52pub use pgs_pcs_segment::{PgsPcsSegment, PgsPcsCompositionState, PgsPcsObjectCroppedFlag};
53pub use pgs_wds_segment::{
54    PgsWdsSegment,
55    PgsWdsSegmentWindowDefinition
56};
57pub use pgs_pds_segment::{
58    PgsPdsSegment,
59    PgsPdsSegmentPaletteEntry
60};
61pub use pgs_display_set::{PgsDisplaySet, PgsDisplaySetState};
62pub use pgs_ods_segment::{
63    PgsOdsSegment,
64    PgsOdsSequenceFlag
65};
66pub use pgs_reader::PgsReader;
67pub use pgs_parser::PgsParser;
68pub use pgs_error::{
69    Error, 
70    Result
71};