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:
|
||||
sample_rate: The audio sample rate in Hz.
|
||||
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__()
|
||||
self._sample_rate = sample_rate
|
||||
self._num_10ms_chunks = num_10ms_chunks
|
||||
|
||||
@@ -137,3 +137,17 @@ class TestRawAudioTrack:
|
||||
for sample_rate, num_chunks, expected_bytes in test_cases:
|
||||
track = RawAudioTrack(sample_rate=sample_rate, num_10ms_chunks=num_chunks)
|
||||
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