aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriadne Conill <ariadne@dereferenced.org>2021-03-26 04:53:10 -0600
committerAriadne Conill <ariadne@dereferenced.org>2021-03-26 04:53:10 -0600
commit961264086400f55be0d74ea4facdbd04cbee12cc (patch)
tree654036de7acb1fa9063c5bc9a69ef300b806d305
parent9a8576f06f3d651882656759c83f0fcea5a6648b (diff)
community/chromium: fix DRM code to build with system libva
editor's note: DRM still sucks
-rw-r--r--community/chromium/APKBUILD4
-rw-r--r--community/chromium/chromium-drm-compile-fix.patch86
2 files changed, 89 insertions, 1 deletions
diff --git a/community/chromium/APKBUILD b/community/chromium/APKBUILD
index 937e1be3295..9a02cface58 100644
--- a/community/chromium/APKBUILD
+++ b/community/chromium/APKBUILD
@@ -110,6 +110,7 @@ source="https://commondatastorage.googleapis.com/chromium-browser-official/chrom
broken-dcheck.patch
unbundled-opus.patch
missing-includes.patch
+ chromium-drm-compile-fix.patch
"
# secfixes:
@@ -403,4 +404,5 @@ cc67d2a77910663e5a1ad5f66606ee2544867aa1fef25e1a1bc355a8db765d5928edb72f158e6a2e
9b1441fe42421ef9ead86a5143bf997d989bd53a8969cdfdf4e0c45f847efc8c1d127e15fb05e2ef5dbefbb228cbdc2849404d74997ca56265599e12e5efd6e4 elf-arm.patch
9b1431fbc94db1d10ef4f26db3329cd1c1c02e957df5e3e9a5e4fa5393e116da5712e2d8e4953fab6d699f94e511a783b5b6ef28120136e1525611c219248cfa broken-dcheck.patch
be62fdc26f4ece2c41e0bbcb97ae1e5ae8400c1dcfa9d80ff5eac6725cabb83cc283666fda08d0da33d73df6faa066418b22f65de497c80a2f412430508bebef unbundled-opus.patch
-18127e70bbe0756eea638d8405797b5399695c649bed4d970384d2633461114e1b3d63a768e2e53c1fbeda5a5919b41ebe3e85f6913622ce6d5ceafaa92a687b missing-includes.patch"
+18127e70bbe0756eea638d8405797b5399695c649bed4d970384d2633461114e1b3d63a768e2e53c1fbeda5a5919b41ebe3e85f6913622ce6d5ceafaa92a687b missing-includes.patch
+7802f04ab3012c2d04e93cc63b2d00ea89207cadfb64d5eebde13189fc7a60c31d71a6b5d19dd67a9fdfb79838477bb1f8ecf9a3d93f0ebf445d648a313e8740 chromium-drm-compile-fix.patch"
diff --git a/community/chromium/chromium-drm-compile-fix.patch b/community/chromium/chromium-drm-compile-fix.patch
new file mode 100644
index 00000000000..3d7b39d978f
--- /dev/null
+++ b/community/chromium/chromium-drm-compile-fix.patch
@@ -0,0 +1,86 @@
+--- chromium-89.0.4389.90.orig/third_party/libva_protected_content/va_protected_content.h
++++ chromium-89.0.4389.90/third_party/libva_protected_content/va_protected_content.h
+@@ -132,19 +132,6 @@
+ #define VA_PC_SAMPLE_TYPE_FULLSAMPLE 0x00000001
+ #define VA_PC_SAMPLE_TYPE_SUBSAMPLE 0x00000002
+
+-/** \brief TeeExec Function Codes. */
+-typedef enum _VA_TEE_EXEC_FUNCTION_ID {
+- VA_TEE_EXEC_TEE_FUNCID_PASS_THROUGH_NONE = 0x0,
+-
+- // 0x40000000~0x400000FFF reserved for TEE Exec GPU function
+- VA_TEE_EXEC_GPU_FUNCID_ENCRYPTION_BLT = 0x40000000,
+- VA_TEE_EXEC_GPU_FUNCID_DECRYPTION_BLT = 0x40000001,
+-
+- // 0x40001000~0x400001FFF reserved for TEE Exec TEE function
+- VA_TEE_EXEC_TEE_FUNCID_PASS_THROUGH = 0x40001000,
+-
+-} VA_TEE_EXEC_FUNCTION_ID;
+-
+ /** \brief values for the encryption return status. */
+ typedef enum {
+ /** \brief Indicate encryption operation is successful.*/
+@@ -158,63 +145,6 @@
+ /** \brief Indicate encryption operation is unsupport. */
+ VA_ENCRYPTION_STATUS_UNSUPPORT
+ } VAEncryptionStatus;
+-
+-/** \brief structure for encrypted segment info. */
+-typedef struct _VAEncryptionSegmentInfo {
+- /** \brief The offset relative to the start of the bitstream input in
+- * bytes of the start of the segment*/
+- uint32_t segment_start_offset;
+- /** \brief The length of the segments in bytes*/
+- uint32_t segment_length;
+- /** \brief The length in bytes of the remainder of an incomplete block
+- * from a previous segment*/
+- uint32_t partial_aes_block_size;
+- /** \brief The length in bytes of the initial clear data */
+- uint32_t init_byte_length;
+- /** \brief This will be AES 128 counter for secure decode and secure
+- * encode when numSegments equals 1 */
+- uint8_t aes_cbc_iv_or_ctr[16];
+- /** \brief Reserved bytes for future use, must be zero */
+- uint32_t va_reserved[VA_PADDING_MEDIUM];
+-} VAEncryptionSegmentInfo;
+-
+-/** \brief encryption parameters, corresponding to
+- * #VAEncryptionParameterBufferType*/
+-typedef struct _VAEncryptionParameters {
+- /** \brief Encryption type, attribute values. */
+- uint32_t encryption_type;
+- /** \brief The number of sengments */
+- uint32_t num_segments;
+- /** \brief Pointer of segments */
+- VAEncryptionSegmentInfo* segment_info;
+- /** \brief The status report index for CENC workload.
+- * The value is to indicate CENC workload and needs to be
+- * different for each CENC workload */
+- uint32_t status_report_index;
+- /** \brief CENC counter length */
+- uint32_t size_of_length;
+- /** \brief Wrapped decrypt blob (Snd)kb */
+- uint8_t wrapped_decrypt_blob[16];
+- /** \brief Wrapped Key blob info (Sne)kb */
+- uint8_t wrapped_encrypt_blob[16];
+- /** \brief Indicates the number of 16-byte BLOCKS that are encrypted in any
+- * given encrypted region of segments.
+- * If this value is zero:
+- * 1. All bytes in encrypted region of segments are encrypted, i.e. the
+- * CENC or CBC1 scheme is being used
+- * 2. blocks_stripe_clear must also be zero.
+- * If this value is non-zero, blocks_stripe_clear must also be non-zero. */
+- uint32_t blocks_stripe_encrypted;
+- /** \brief Indicates the number of 16-byte BLOCKS that are clear in any given
+- * encrypted region of segments, as defined by the CENS and CBCS schemes in
+- * the common encryption spec.
+- * If this value is zero, all bytes in encrypted region of segments are
+- * encrypted, i.e. the CENC or CBC1 scheme is being used.
+- */
+- uint32_t blocks_stripe_clear;
+- /** \brief Reserved bytes for future use, must be zero */
+- uint32_t va_reserved[VA_PADDING_MEDIUM];
+-} VAEncryptionParameters;
+
+ /** \brief structure for VA_TEE_EXEC_GPU_FUNCID_ENCRYPTION_BLT */
+ typedef struct _VA_PROTECTED_BLT_PARAMS {