X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-duck%2Fsrc%2Fcodecs%2Fvp56.rs;h=3a691ede7f63640d38c0a7c0092d9d4202fd32ec;hp=ff989823bb1c0f645ed04187f7eb39b5558627c0;hb=93bbc2b0582d4199cef6642924dca7c95bfe135a;hpb=1bf8e0fcee7d251ec3096f86fea281b5ceea133a diff --git a/nihav-duck/src/codecs/vp56.rs b/nihav-duck/src/codecs/vp56.rs index ff98982..3a691ed 100644 --- a/nihav-duck/src/codecs/vp56.rs +++ b/nihav-duck/src/codecs/vp56.rs @@ -423,7 +423,7 @@ pub fn expand_token_bc(bc: &mut BoolCoder, val_probs: &[u8; 11], token: u8, vers impl VP56Decoder { pub fn new(version: u8, has_alpha: bool, flip: bool) -> Self { - let vt = alloc_video_buffer(NAVideoInfo::new(24, 24, false, YUV420_FORMAT), 4).unwrap(); + let vt = alloc_video_buffer(NAVideoInfo::new(24, 24, false, VP_YUVA420_FORMAT), 4).unwrap(); let mc_buf = vt.get_vbuf().unwrap(); Self { version, has_alpha, flip, @@ -486,7 +486,12 @@ impl VP56Decoder { if hdr.mb_w != 0 { self.set_dimensions((hdr.mb_w as usize) * 16, (hdr.mb_h as usize) * 16); } - let vinfo = NAVideoInfo::new(self.width, self.height, self.flip, YUV420_FORMAT); + let fmt = if !self.has_alpha { + YUV420_FORMAT + } else { + VP_YUVA420_FORMAT + }; + let vinfo = NAVideoInfo::new(self.width, self.height, self.flip, fmt); let ret = supp.pool_u8.get_free(); if ret.is_none() { return Err(DecoderError::AllocError);