[tbb-commits] [tor-browser] 204/311: Bug 1745492 Part 7: Set the color primaries and transfer functions for macOS HD and HDR video. r=media-playback-reviewers, bryce a=dmeehan
gitolite role
git at cupani.torproject.org
Tue Apr 26 15:30:04 UTC 2022
This is an automated email from the git hooks/post-receive script.
pierov pushed a commit to branch geckoview-99.0.1-11.0-1
in repository tor-browser.
commit 7a5e4ed65b912df36de52d5825596be8c031a1be
Author: Brad Werth <bwerth at mozilla.com>
AuthorDate: Mon Mar 14 22:57:13 2022 +0000
Bug 1745492 Part 7: Set the color primaries and transfer functions for macOS HD and HDR video. r=media-playback-reviewers,bryce a=dmeehan
This also reorders the colorspace if-elses to explicitly check for bt601,
bt709, and bt2020 in that order. This ensures that anything with the Identity
colorspace will be left with no attachments.
Differential Revision: https://phabricator.services.mozilla.com/D140576
---
dom/media/platforms/apple/AppleVTDecoder.cpp | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/dom/media/platforms/apple/AppleVTDecoder.cpp b/dom/media/platforms/apple/AppleVTDecoder.cpp
index d73928946a0ea..ce855db3a5c39 100644
--- a/dom/media/platforms/apple/AppleVTDecoder.cpp
+++ b/dom/media/platforms/apple/AppleVTDecoder.cpp
@@ -426,6 +426,12 @@ void AppleVTDecoder::OutputFrame(CVPixelBufferRef aImage,
// Unlock the returned image data.
CVPixelBufferUnlockBaseAddress(aImage, kCVPixelBufferLock_ReadOnly);
} else {
+#if !defined(MAC_OS_VERSION_10_13) || \
+ MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_VERSION_10_13
+ CFStringRef kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ =
+ CFSTR("SMPTE_ST_2084_PQ");
+#endif
+
#ifndef MOZ_WIDGET_UIKIT
// Set pixel buffer properties on aImage before we extract its surface.
// This ensures that we can use defined enums to set values instead
@@ -434,13 +440,25 @@ void AppleVTDecoder::OutputFrame(CVPixelBufferRef aImage,
CVBufferSetAttachment(aImage, kCVImageBufferYCbCrMatrixKey,
kCVImageBufferYCbCrMatrix_ITU_R_601_4,
kCVAttachmentMode_ShouldPropagate);
+ } else if (mColorSpace == gfx::YUVColorSpace::BT709) {
+ CVBufferSetAttachment(aImage, kCVImageBufferYCbCrMatrixKey,
+ kCVImageBufferYCbCrMatrix_ITU_R_709_2,
+ kCVAttachmentMode_ShouldPropagate);
+ CVBufferSetAttachment(aImage, kCVImageBufferColorPrimariesKey,
+ kCVImageBufferColorPrimaries_ITU_R_709_2,
+ kCVAttachmentMode_ShouldPropagate);
+ CVBufferSetAttachment(aImage, kCVImageBufferTransferFunctionKey,
+ kCVImageBufferTransferFunction_ITU_R_709_2,
+ kCVAttachmentMode_ShouldPropagate);
} else if (mColorSpace == gfx::YUVColorSpace::BT2020) {
CVBufferSetAttachment(aImage, kCVImageBufferYCbCrMatrixKey,
kCVImageBufferYCbCrMatrix_ITU_R_2020,
kCVAttachmentMode_ShouldPropagate);
- } else {
- CVBufferSetAttachment(aImage, kCVImageBufferYCbCrMatrixKey,
- kCVImageBufferYCbCrMatrix_ITU_R_709_2,
+ CVBufferSetAttachment(aImage, kCVImageBufferColorPrimariesKey,
+ kCVImageBufferColorPrimaries_ITU_R_2020,
+ kCVAttachmentMode_ShouldPropagate);
+ CVBufferSetAttachment(aImage, kCVImageBufferTransferFunctionKey,
+ kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ,
kCVAttachmentMode_ShouldPropagate);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the tbb-commits
mailing list