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
use nom::number::streaming::le_u8 as parse_u8; use nom::IResult as NomResult; use swf_tree as ast; pub fn video_deblocking_from_id(video_deblocking_id: u8) -> ast::VideoDeblocking { match video_deblocking_id { 0 => ast::VideoDeblocking::PacketValue, 1 => ast::VideoDeblocking::Off, 2 => ast::VideoDeblocking::Level1, 3 => ast::VideoDeblocking::Level2, 4 => ast::VideoDeblocking::Level3, 5 => ast::VideoDeblocking::Level4, _ => panic!("Unexpected video deblocking id"), } } pub fn parse_videoc_codec(input: &[u8]) -> NomResult<&[u8], ast::VideoCodec> { let (input, codec_id) = parse_u8(input)?; let codec = video_codec_from_id(codec_id); Ok((input, codec)) } pub fn video_codec_from_id(video_codec_id: u8) -> ast::VideoCodec { match video_codec_id { 0 => ast::VideoCodec::None, 1 => ast::VideoCodec::Jpeg, 2 => ast::VideoCodec::Sorenson, 3 => ast::VideoCodec::Screen, 4 => ast::VideoCodec::Vp6, 5 => ast::VideoCodec::Vp6Alpha, 6 => ast::VideoCodec::Screen2, 7 => ast::VideoCodec::Avc, _ => panic!("Unexpected video codec id"), } }