mirror of
https://github.com/storytold/filmcraft.git
synced 2026-11-02 18:09:21 +00:00
Merge PR #1707: mpegts/avi: drop redundant PES header check and doubled frame_info call
This commit is contained in:
@@ -194,10 +194,11 @@ fn split_frames(
|
||||
let Some(here) = win.get(pos - base..) else { break };
|
||||
match filmcraft_mpegts::frame_bytes(ts, here) {
|
||||
Some(n) if pos + n <= total => {
|
||||
let fi = filmcraft_mpegts::frame_info(ts, here);
|
||||
if info.is_none() {
|
||||
info = filmcraft_mpegts::frame_info(ts, here);
|
||||
info = fi;
|
||||
}
|
||||
let k = filmcraft_mpegts::frame_info(ts, here).map_or(0, |f| f.samples);
|
||||
let k = fi.map_or(0, |f| f.samples);
|
||||
first.push(pieces.len());
|
||||
let mut p = pos;
|
||||
while p < pos + n {
|
||||
|
||||
@@ -114,11 +114,10 @@ impl PesAsm {
|
||||
}
|
||||
let before = self.hdr.len();
|
||||
self.hdr.extend_from_slice(payload);
|
||||
if let Some(h) = pes::parse(&self.hdr)
|
||||
&& self.hdr.len() >= h.header_len
|
||||
{
|
||||
// `pes::parse` only succeeds once the whole header (`header_len` bytes) is buffered
|
||||
if let Some(h) = pes::parse(&self.hdr) {
|
||||
self.waiting = false;
|
||||
let skip = (h.header_len - before).min(payload.len());
|
||||
let skip = h.header_len.saturating_sub(before).min(payload.len());
|
||||
return (Some(h), &payload[skip..]);
|
||||
}
|
||||
if self.hdr.len() > 1024 || (self.hdr.len() >= 6 && !(self.hdr[0] == 0 && self.hdr[1] == 0 && self.hdr[2] == 1)) {
|
||||
|
||||
Reference in New Issue
Block a user