1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! `OxiMedia` I/O Layer
//!
//! This crate provides the I/O foundation for the `OxiMedia` framework:
//!
//! - **Source Module**: Abstractions for reading media from various sources
//! - [`MediaSource`] - Unified async media source trait
//! - [`FileSource`] - Local file access via tokio
//! - [`MemorySource`] - In-memory buffer access
//!
//! - **Bits Module**: Bit-level reading utilities
//! - [`BitReader`] - Bit-level reader for parsing binary formats
//! - Exp-Golomb coding support for H.264-style variable-length integers
//!
//! # Example
//!
//! ```no_run
//! use oximedia_io::source::{FileSource, MediaSource};
//! use std::io::SeekFrom;
//!
//! #[tokio::main]
//! async fn main() -> oximedia_core::OxiResult<()> {
//! let mut source = FileSource::open("video.webm").await?;
//!
//! let mut buffer = [0u8; 1024];
//! let bytes_read = source.read(&mut buffer).await?;
//!
//! println!("Read {} bytes", bytes_read);
//! Ok(())
//! }
//! ```
// Re-export commonly used types
pub use BitReader;
pub use ;