Skip to content

Commit 89f29c4

Browse files
committed
Enable CBCS
Signed-off-by: kkkuangzh <[email protected]>
1 parent b87eb8c commit 89f29c4

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

c2_utils/include/mfx_c2_widevine_crypto_defs.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,18 @@ typedef enum OEMCryptoCipherMode {
3636

3737
typedef struct {
3838
size_t block_offset;
39-
IV current_iv;
40-
size_t data_length;
4139
size_t clear_bytes;
4240
size_t encrypted_bytes;
43-
size_t pattern_clear;
44-
size_t pattern_encrypted;
4541
} packet_info;
4642

4743
typedef struct {
4844
uint32_t pr_magic;
49-
uint32_t app_id;
5045
uint32_t session_id;
46+
IV current_iv;
5147
size_t num_packet_data;
5248
size_t sample_size;
49+
size_t pattern_clear;
50+
size_t pattern_encrypted;
5351
OEMCryptoCipherMode cipher_mode;
5452
uint8_t hw_key_id[16];
5553
packet_info* packet_data;

c2_utils/src/mfx_frame_constructor.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,13 @@ mfxStatus MfxC2FrameConstructor::LoadSecure(HUCVideoBuffer *hucBuffer, const mfx
225225
m_decryptConfig.session = hucBuffer->session_id;
226226
m_decryptConfig.num_subsamples = hucBuffer->num_packet_data;
227227
m_decryptConfig.encryption_scheme = GetEncryptionScheme(hucBuffer->cipher_mode);
228+
m_decryptConfig.pattern.clear_byte_block = hucBuffer->pattern_clear;
229+
m_decryptConfig.pattern.cypher_byte_block = hucBuffer->pattern_encrypted;
228230
std::memcpy(m_decryptConfig.hw_key_id, hucBuffer->hw_key_id, sizeof(hucBuffer->hw_key_id));
229-
230-
char* baseAddress = reinterpret_cast<char*>(hucBuffer);
231-
packet_info* packet = reinterpret_cast<packet_info*>(baseAddress + sizeof(HUCVideoBuffer) - 8);
232-
std::memcpy(m_decryptConfig.iv, packet->current_iv.data(), packet->current_iv.size());
231+
std::memcpy(m_decryptConfig.iv, hucBuffer->current_iv.data(), hucBuffer->current_iv.size());
233232

234233
m_decryptConfig.subsamples = (SubsampleEntry*)malloc(hucBuffer->num_packet_data * sizeof(SubsampleEntry));
234+
char* baseAddress = reinterpret_cast<char*>(hucBuffer);
235235
for (int i = 0; i < hucBuffer->num_packet_data; i++)
236236
{
237237
packet_info* packet = reinterpret_cast<packet_info*>(baseAddress + sizeof(HUCVideoBuffer) - 8 + (i * sizeof(packet_info)));
@@ -244,6 +244,8 @@ mfxStatus MfxC2FrameConstructor::LoadSecure(HUCVideoBuffer *hucBuffer, const mfx
244244
MFX_DEBUG_TRACE_I32(entry.cypher_bytes);
245245
MFX_DEBUG_TRACE_I32(packet->clear_bytes);
246246
MFX_DEBUG_TRACE_I32(packet->encrypted_bytes);
247+
MFX_DEBUG_TRACE_I32(packet->pattern_clear);
248+
MFX_DEBUG_TRACE_I32(packet->pattern_encrypted);
247249
}
248250
}
249251

0 commit comments

Comments
 (0)