File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# SPDX-License-Identifier: MIT
2+ import sys
23from . import asn1
34from ctypes import *
45
56__all__ = ["img4p_extract_compressed" , "img4p_extract" ]
67
7- def decode_lzfse (cdata , raw_size ):
8+ def decode_lzfse_liblzfse (cdata , raw_size ):
89 lzfse = CDLL ("liblzfse.so" )
910
1011 dest = create_string_buffer (raw_size )
@@ -13,6 +14,23 @@ def decode_lzfse(cdata, raw_size):
1314 assert decoded == raw_size
1415 return dest .raw
1516
17+ def decode_lzfse_darwin (cdata , raw_size ):
18+ compression = CDLL ("libcompression.dylib" )
19+
20+ dest = create_string_buffer (raw_size )
21+ COMPRESSION_LZFSE = 0x801
22+ decoded = compression .compression_decode_buffer (dest , raw_size ,
23+ cdata , len (cdata ),
24+ None , COMPRESSION_LZFSE )
25+
26+ assert decoded == raw_size
27+ return dest .raw
28+
29+ if sys .platform == 'darwin' :
30+ decode_lzfse = decode_lzfse_darwin
31+ else :
32+ decode_lzfse = decode_lzfse_liblzfse
33+
1634def decode_header (decoder ):
1735 tag = decoder .peek ()
1836 assert tag .nr == asn1 .Numbers .Sequence
You can’t perform that action at this time.
0 commit comments