mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 13:25:37 +00:00
Bug 1423795 - Set correct YUVColorSpace for video if possible r=nical
This commit is contained in:
parent
22a064e2b7
commit
05e371c3e3
@ -617,13 +617,14 @@ BufferTextureHost::PushDisplayItems(wr::DisplayListBuilder& aBuilder,
|
||||
aBuilder.PushImage(aBounds, aClip, true, aFilter, aImageKeys[0]);
|
||||
} else {
|
||||
MOZ_ASSERT(aImageKeys.length() == 3);
|
||||
const YCbCrDescriptor& desc = mDescriptor.get_YCbCrDescriptor();
|
||||
aBuilder.PushYCbCrPlanarImage(aBounds,
|
||||
aClip,
|
||||
true,
|
||||
aImageKeys[0],
|
||||
aImageKeys[1],
|
||||
aImageKeys[2],
|
||||
wr::WrYuvColorSpace::Rec601,
|
||||
wr::ToWrYuvColorSpace(desc.yUVColorSpace()),
|
||||
aFilter);
|
||||
}
|
||||
}
|
||||
|
@ -1151,7 +1151,7 @@ DXGITextureHostD3D11::PushDisplayItems(wr::DisplayListBuilder& aBuilder,
|
||||
true,
|
||||
aImageKeys[0],
|
||||
aImageKeys[1],
|
||||
wr::WrYuvColorSpace::Rec601,
|
||||
wr::ToWrYuvColorSpace(YUVColorSpace::BT601),
|
||||
aFilter);
|
||||
break;
|
||||
}
|
||||
@ -1374,7 +1374,7 @@ DXGIYCbCrTextureHostD3D11::PushDisplayItems(wr::DisplayListBuilder& aBuilder,
|
||||
aImageKeys[0],
|
||||
aImageKeys[1],
|
||||
aImageKeys[2],
|
||||
wr::WrYuvColorSpace::Rec601,
|
||||
wr::ToWrYuvColorSpace(mYUVColorSpace),
|
||||
aFilter);
|
||||
}
|
||||
|
||||
|
@ -222,7 +222,7 @@ MacIOSurfaceTextureHostOGL::PushDisplayItems(wr::DisplayListBuilder& aBuilder,
|
||||
aClip,
|
||||
true,
|
||||
aImageKeys[0],
|
||||
wr::WrYuvColorSpace::Rec601,
|
||||
wr::ToWrYuvColorSpace(YUVColorSpace::BT601),
|
||||
aFilter);
|
||||
break;
|
||||
}
|
||||
@ -234,7 +234,7 @@ MacIOSurfaceTextureHostOGL::PushDisplayItems(wr::DisplayListBuilder& aBuilder,
|
||||
true,
|
||||
aImageKeys[0],
|
||||
aImageKeys[1],
|
||||
wr::WrYuvColorSpace::Rec601,
|
||||
wr::ToWrYuvColorSpace(YUVColorSpace::BT601),
|
||||
aFilter);
|
||||
break;
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
#define GFX_WEBRENDERTYPES_H
|
||||
|
||||
#include "FrameMetrics.h"
|
||||
#include "ImageTypes.h"
|
||||
#include "mozilla/webrender/webrender_ffi.h"
|
||||
#include "mozilla/Maybe.h"
|
||||
#include "mozilla/gfx/Matrix.h"
|
||||
@ -766,6 +767,18 @@ enum class WebRenderError : int8_t {
|
||||
Sentinel /* this must be last for serialization purposes. */
|
||||
};
|
||||
|
||||
static inline wr::WrYuvColorSpace ToWrYuvColorSpace(YUVColorSpace aYUVColorSpace) {
|
||||
switch (aYUVColorSpace) {
|
||||
case YUVColorSpace::BT601:
|
||||
return wr::WrYuvColorSpace::Rec601;
|
||||
case YUVColorSpace::BT709:
|
||||
return wr::WrYuvColorSpace::Rec709;
|
||||
default:
|
||||
MOZ_ASSERT_UNREACHABLE("Tried to convert invalid YUVColorSpace.");
|
||||
}
|
||||
return wr::WrYuvColorSpace::Rec601;
|
||||
}
|
||||
|
||||
} // namespace wr
|
||||
} // namespace mozilla
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user