更新UCD-API库及文档
This commit is contained in:
69
UniTAP/utils/bit_ops.py
Normal file
69
UniTAP/utils/bit_ops.py
Normal file
@@ -0,0 +1,69 @@
|
||||
def clr_bits(value: int, mask: int) -> int:
|
||||
"""
|
||||
Clear bits specified by mask in the given value.
|
||||
|
||||
Args:
|
||||
value (int): The original integer value.
|
||||
mask (int): The mask specifying which bits to clear.
|
||||
|
||||
Returns:
|
||||
int: The modified integer value with specified bits cleared.
|
||||
"""
|
||||
return value & ~mask
|
||||
|
||||
def get_bits(value: int, mask: int) -> int:
|
||||
"""
|
||||
Get bits specified by mask from the given value.
|
||||
|
||||
Args:
|
||||
value (int): The original integer value.
|
||||
mask (int): The mask specifying which bits to get.
|
||||
|
||||
Returns:
|
||||
int: The extracted bits shifted to the right by the offset.
|
||||
"""
|
||||
return value & mask
|
||||
|
||||
def get_bitfield(value: int, mask: int, pos: int) -> int:
|
||||
"""
|
||||
Extract a bitfield from the given value.
|
||||
|
||||
Args:
|
||||
value (int): The original integer value.
|
||||
mask (int): The mask specifying the bitfield.
|
||||
pos (int): The position to shift the masked bits.
|
||||
|
||||
Returns:
|
||||
int: The extracted bitfield shifted to the right by the position.
|
||||
"""
|
||||
return get_bits(value, mask) >> pos
|
||||
|
||||
def update_bits(value: int, mask: int, new_bits: int) -> int:
|
||||
"""
|
||||
Update bits specified by mask in the given value with new bits.
|
||||
|
||||
Args:
|
||||
value (int): The original integer value.
|
||||
mask (int): The mask specifying which bits to update.
|
||||
new_bits (int): The new bits to set in the specified positions.
|
||||
|
||||
Returns:
|
||||
int: The modified integer value with specified bits updated.
|
||||
"""
|
||||
|
||||
return clr_bits(value, mask) | get_bits(new_bits, mask)
|
||||
|
||||
def set_bitfield(value: int, mask: int, pos: int, new_bits: int) -> int:
|
||||
"""
|
||||
Set a bitfield in the given value with new bits.
|
||||
|
||||
Args:
|
||||
value (int): The original integer value.
|
||||
mask (int): The mask specifying the bitfield.
|
||||
pos (int): The position to shift the new bits.
|
||||
new_bits (int): The new bits to set in the specified bitfield.
|
||||
|
||||
Returns:
|
||||
int: The modified integer value with specified bitfield updated.
|
||||
"""
|
||||
return update_bits(value, mask, new_bits << pos)
|
||||
@@ -56,7 +56,7 @@ def video_frame_save_to_file(video_frame: Union[VideoFrame, VideoFrameDSC], path
|
||||
dsc_file.write(video_frame.data)
|
||||
return os.path.exists(path)
|
||||
else:
|
||||
if b'DSCF' not in video_frame.data:
|
||||
if b'DSCF' not in video_frame.data and not isinstance(video_frame, VideoFrameDSC):
|
||||
if video_frame.data_info.component_order == DataInfo.ComponentOrder.CO_UCDRX:
|
||||
data_info = DataInfo()
|
||||
color_info = ColorInfo()
|
||||
|
||||
Reference in New Issue
Block a user