xref: /xiu/library/streamhub/src/statistics/mod.rs (revision 8e71d710)
1 pub mod avstatistics;
2 
3 use {
4     super::stream::StreamIdentifier,
5     serde::Serialize,
6     xflv::define::{AacProfile, AvcCodecId, AvcLevel, AvcProfile, SoundFormat},
7 };
8 
9 #[derive(Debug, Clone, Serialize, Default)]
10 pub struct VideoInfo {
11     codec: AvcCodecId,
12     profile: AvcProfile,
13     level: AvcLevel,
14     width: u32,
15     height: u32,
16     #[serde(rename = "bitrate(kbits/s)")]
17     bitrate: f32,
18     frame_rate: usize,
19     gop: usize,
20 }
21 #[derive(Debug, Clone, Serialize, Default)]
22 pub struct AudioInfo {
23     sound_format: SoundFormat,
24     profile: AacProfile,
25     samplerate: u32,
26     channels: u8,
27     #[serde(rename = "bitrate(kbits/s)")]
28     bitrate: f32,
29 }
30 #[derive(Debug, Clone, Serialize, Default)]
31 pub struct StreamStatistics {
32     identifier: StreamIdentifier,
33     pub video: VideoInfo,
34     pub audio: AudioInfo,
35 }
36 
37 impl StreamStatistics {
new(identifier: StreamIdentifier) -> Self38     pub fn new(identifier: StreamIdentifier) -> Self {
39         Self {
40             identifier,
41             ..Default::default()
42         }
43     }
44 }
45