mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-09 17:31:47 +09:00
Issue #2357 - VPXDecoder does not decode alpha frames.
Another requirement to have transparency in videos. Straight port of Firefox 53 implementation, save for some oddities relating to needing to put uint8_t instead of uint8 in yuv_convert to get this to compile. Ref: BZ 1321076, 1329104
This commit is contained in:
parent
71cc0ef940
commit
c0ba3a8d2e
9 changed files with 315 additions and 65 deletions
|
|
@ -550,6 +550,27 @@ void ScaleYCbCrToRGB32_deprecated(const uint8_t* y_buf,
|
|||
if (has_mmx)
|
||||
EMMS();
|
||||
}
|
||||
void ConvertYCbCrAToARGB32(const uint8_t* y_buf,
|
||||
const uint8_t* u_buf,
|
||||
const uint8_t* v_buf,
|
||||
const uint8_t* a_buf,
|
||||
uint8_t* argb_buf,
|
||||
int pic_width,
|
||||
int pic_height,
|
||||
int ya_pitch,
|
||||
int uv_pitch,
|
||||
int argb_pitch) {
|
||||
|
||||
// The downstream graphics stack expects an attenuated input, hence why the
|
||||
// attenuation parameter is set.
|
||||
DebugOnly<int> err = libyuv::I420AlphaToARGB(y_buf, ya_pitch,
|
||||
u_buf, uv_pitch,
|
||||
v_buf, uv_pitch,
|
||||
a_buf, ya_pitch,
|
||||
argb_buf, argb_pitch,
|
||||
pic_width, pic_height, 1);
|
||||
MOZ_ASSERT(!err);
|
||||
}
|
||||
|
||||
} // namespace gfx
|
||||
} // namespace mozilla
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue