@@ -48,12 +48,15 @@ def process_stream(self, data: AudioFrame) -> None:
4848 Important:
4949 Audio frames must be exactly 10 ms in duration.
5050 """
51- bdata = data .data .cast ("b" )
51+ if isinstance (data ._data , bytes ) or (
52+ isinstance (data ._data , memoryview ) and data ._data .readonly
53+ ):
54+ data ._data = bytearray (data ._data )
5255
5356 req = proto_ffi .FfiRequest ()
5457 req .apm_process_stream .apm_handle = self ._ffi_handle .handle
55- req .apm_process_stream .data_ptr = get_address (memoryview ( bdata ) )
56- req .apm_process_stream .size = len (bdata )
58+ req .apm_process_stream .data_ptr = get_address (data . _data )
59+ req .apm_process_stream .size = len (data . _data )
5760 req .apm_process_stream .sample_rate = data .sample_rate
5861 req .apm_process_stream .num_channels = data .num_channels
5962
@@ -73,12 +76,15 @@ def process_reverse_stream(self, data: AudioFrame) -> None:
7376 Important:
7477 Audio frames must be exactly 10 ms in duration.
7578 """
76- bdata = data .data .cast ("b" )
79+ if isinstance (data ._data , bytes ) or (
80+ isinstance (data ._data , memoryview ) and data ._data .readonly
81+ ):
82+ data ._data = bytearray (data ._data )
7783
7884 req = proto_ffi .FfiRequest ()
7985 req .apm_process_reverse_stream .apm_handle = self ._ffi_handle .handle
80- req .apm_process_reverse_stream .data_ptr = get_address (memoryview ( bdata ) )
81- req .apm_process_reverse_stream .size = len (bdata )
86+ req .apm_process_reverse_stream .data_ptr = get_address (data . _data )
87+ req .apm_process_reverse_stream .size = len (data . _data )
8288 req .apm_process_reverse_stream .sample_rate = data .sample_rate
8389 req .apm_process_reverse_stream .num_channels = data .num_channels
8490
0 commit comments