diff --git a/src/codec.rs b/src/codec.rs index 6b2290a..1f8ac0a 100644 --- a/src/codec.rs +++ b/src/codec.rs @@ -233,7 +233,7 @@ pub fn convert_to_annex_b(data: &[u8], codec: CodecType) -> Vec { let nal_size = u32::from_be_bytes([data[pos], data[pos + 1], data[pos + 2], data[pos + 3]]) as usize; - let nal_type = if pos + 4 + 1 <= data.len() { + let nal_type = if pos + 4 < data.len() { match codec { CodecType::H264 => data[pos + 4] & 0x1F, CodecType::H265 => (data[pos + 4] >> 1) & 0x3F, diff --git a/src/main.rs b/src/main.rs index c3067da..129ffcd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,7 +12,6 @@ use clap::Parser; use ffmpeg_next as ffmpeg; use mcap::{records::MessageHeader, Channel, Schema, Writer}; use prost::Message; -use prost_types; pub mod foxglove { include!(concat!(env!("OUT_DIR"), "/foxglove.rs")); @@ -68,8 +67,8 @@ fn main() -> Result<(), Box> { let mut frame = ffmpeg::frame::Video::empty(); let first_frame = true; - let mut packet_iter = input.packets(); - while let Some((stream, packet)) = packet_iter.next() { + let packet_iter = input.packets(); + for (stream, packet) in packet_iter { if stream.index() != video_stream_index { continue; }