-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
Without modifications to
pub fn get_picture(&mut self) -> Result<Picture, Error> {
unsafe {
let mut pic: Dav1dPicture = mem::zeroed();
let mut ret = -11;
while ret == -11 {
ret = dav1d_get_picture(self.dec, &mut pic);
}
if ret < 0 {
Err(Error(ret))
} else {
let inner = InnerPicture { pic };
Ok(Picture {
inner: Arc::new(inner),
})
}
}
}
Fails to decode with 1.0.0, after returning -11. With modification works fine. Apparently -11 is dav1d's way of spelling EAGAIN, and it expects you to keep requesting the picture. Here's how libheif dealt with this https://github.com/strukturag/libheif/blob/0f8496f22d284e1a69df12fe0b72f375aed31315/libheif/heif_decoder_dav1d.cc#L178-L183
See this for investigation image-rs/image#1647
Metadata
Metadata
Assignees
Labels
No labels