Add validation for num_10ms_chunks parameter
Ensure num_10ms_chunks is a positive integer to prevent division by zero or invalid audio chunk sizes. Raises ValueError if value is less than 1.
This commit is contained in:
@@ -84,7 +84,12 @@ class RawAudioTrack(AudioStreamTrack):
|
|||||||
Args:
|
Args:
|
||||||
sample_rate: The audio sample rate in Hz.
|
sample_rate: The audio sample rate in Hz.
|
||||||
num_10ms_chunks: Number of 10ms chunks per output frame (default 1).
|
num_10ms_chunks: Number of 10ms chunks per output frame (default 1).
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
ValueError: If num_10ms_chunks is not a positive integer.
|
||||||
"""
|
"""
|
||||||
|
if num_10ms_chunks < 1:
|
||||||
|
raise ValueError(f"num_10ms_chunks must be a positive integer, got {num_10ms_chunks}")
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self._sample_rate = sample_rate
|
self._sample_rate = sample_rate
|
||||||
self._num_10ms_chunks = num_10ms_chunks
|
self._num_10ms_chunks = num_10ms_chunks
|
||||||
|
|||||||
@@ -137,3 +137,17 @@ class TestRawAudioTrack:
|
|||||||
for sample_rate, num_chunks, expected_bytes in test_cases:
|
for sample_rate, num_chunks, expected_bytes in test_cases:
|
||||||
track = RawAudioTrack(sample_rate=sample_rate, num_10ms_chunks=num_chunks)
|
track = RawAudioTrack(sample_rate=sample_rate, num_10ms_chunks=num_chunks)
|
||||||
assert track._bytes_per_chunk == expected_bytes
|
assert track._bytes_per_chunk == expected_bytes
|
||||||
|
|
||||||
|
def test_invalid_num_10ms_chunks_zero(self):
|
||||||
|
"""Test that num_10ms_chunks=0 raises ValueError."""
|
||||||
|
with pytest.raises(ValueError) as exc_info:
|
||||||
|
RawAudioTrack(sample_rate=16000, num_10ms_chunks=0)
|
||||||
|
|
||||||
|
assert "positive integer" in str(exc_info.value)
|
||||||
|
|
||||||
|
def test_invalid_num_10ms_chunks_negative(self):
|
||||||
|
"""Test that negative num_10ms_chunks raises ValueError."""
|
||||||
|
with pytest.raises(ValueError) as exc_info:
|
||||||
|
RawAudioTrack(sample_rate=16000, num_10ms_chunks=-1)
|
||||||
|
|
||||||
|
assert "positive integer" in str(exc_info.value)
|
||||||
|
|||||||
Reference in New Issue
Block a user