Fix non-sticker Webm in media viewer.

This commit is contained in:
John Preston 2022-01-21 18:01:33 +03:00
parent 2f9c39fe53
commit 589673e420
2 changed files with 10 additions and 4 deletions

View file

@ -187,10 +187,13 @@ void OverlayWidget::RendererGL::paintTransformedVideoFrame(
const auto data = _owner->videoFrameWithInfo(); const auto data = _owner->videoFrameWithInfo();
if (data.format == Streaming::FrameFormat::None) { if (data.format == Streaming::FrameFormat::None) {
return; return;
} } else if (data.format == Streaming::FrameFormat::ARGB32) {
if (data.format == Streaming::FrameFormat::ARGB32) {
Assert(!data.original.isNull()); Assert(!data.original.isNull());
paintTransformedStaticContent(data.original, geometry, false, false); paintTransformedStaticContent(
data.original,
geometry,
data.alpha,
data.alpha);
return; return;
} }
Assert(data.format == Streaming::FrameFormat::YUV420); Assert(data.format == Streaming::FrameFormat::YUV420);

View file

@ -611,6 +611,7 @@ Streaming::FrameWithInfo OverlayWidget::videoFrameWithInfo() const {
.original = _streamed->instance.info().video.cover, .original = _streamed->instance.info().video.cover,
.format = Streaming::FrameFormat::ARGB32, .format = Streaming::FrameFormat::ARGB32,
.index = -2, .index = -2,
.alpha = _streamed->instance.info().video.alpha,
}; };
} }
@ -656,7 +657,9 @@ bool OverlayWidget::opaqueContentShown() const {
return contentShown() return contentShown()
&& (!_staticContentTransparent && (!_staticContentTransparent
|| !_document || !_document
|| (!_document->isVideoMessage() && !_document->sticker())); || (!_document->isVideoMessage()
&& !_document->sticker()
&& (!_streamed || !_streamed->instance.info().video.alpha)));
} }
void OverlayWidget::clearStreaming(bool savePosition) { void OverlayWidget::clearStreaming(bool savePosition) {