Skip to content

Commit

Permalink
[e2e] テスト追加
Browse files Browse the repository at this point in the history
  • Loading branch information
voluntas committed Oct 12, 2024
1 parent 9a62b76 commit cd0be27
Showing 1 changed file with 30 additions and 5 deletions.
35 changes: 30 additions & 5 deletions tests/test_encoded_transform.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,9 @@ def _on_audio_transform(self, frame: SoraTransformableAudioFrame):
# 戻り値は numpy.ndarray になっている
new_data = frame.get_data()

# "sora" という文字列を new_data の後ろに追加
new_data = numpy.append(new_data, numpy.frombuffer(b"sora", dtype=numpy.uint8))

self._is_called_on_audio_transform = True

# ここで new_data の末尾にデータをつける new_data を暗号化するなど任意の処理を実装する
Expand All @@ -179,6 +182,9 @@ def _on_video_transform(self, frame: SoraTransformableVideoFrame):
# 戻り値は numpy.ndarray になっている
new_data = frame.get_data()

# "sora" という文字列を new_data の後ろに追加
new_data = numpy.append(new_data, numpy.frombuffer(b"sora", dtype=numpy.uint8))

self._is_called_on_video_transform = True

# ここで new_data の末尾にデータをつける new_data を暗号化するなど任意の処理を実装する
Expand Down Expand Up @@ -293,11 +299,22 @@ def _on_audio_transform(self, frame: SoraTransformableAudioFrame):
# この実装が Encoded Transform を利用する上での基本形となる

# frame からエンコードされたフレームデータを取得する
# 戻り値は numpy.ndarray になっている
# 戻り値は ArrayLike になっている
new_data = frame.get_data()

# ここで new_data の末尾にデータをつける new_data を暗号化するなど任意の処理を実装する

# ArrayLike を numpy.uint8 のバイト列に変換する
new_data = numpy.asarray(new_data, dtype=numpy.uint8)

# 後ろ4バイトを取得する
removed_data = new_data[-4:]

assert b"sora" == removed_data.tobytes()

# 後ろ4バイトを取り除く
new_data = new_data[:-4]

self._is_called_on_audio_transform = True

# 加工したフレームデータで frame の フレームデータを入れ替える
Expand All @@ -306,13 +323,23 @@ def _on_audio_transform(self, frame: SoraTransformableAudioFrame):

def _on_video_transform(self, frame: SoraTransformableVideoFrame):
# この実装が Encoded Transform を利用する上での基本形となる

# frame からエンコードされたフレームデータを取得する
# 戻り値は numpy.ndarray になっている
# 戻り値は ArrayLike になっている
new_data = frame.get_data()

# ここで new_data の末尾にデータをつける new_data を暗号化するなど任意の処理を実装する

# ArrayLike を numpy.uint8 のバイト列に変換する
new_data = numpy.asarray(new_data, dtype=numpy.uint8)

# 後ろ4バイトを取得する
removed_data = new_data[-4:]

assert b"sora" == removed_data.tobytes()

# 後ろ4バイトを取り除く
new_data = new_data[:-4]

self._is_called_on_video_transform = True

# 加工したフレームデータで frame の フレームデータを入れ替える
Expand Down Expand Up @@ -376,8 +403,6 @@ def test_encoded_transform(setup):
assert outbound_rtp_stats["bytesSent"] > 0
assert outbound_rtp_stats["packetsSent"] > 0

print(recvonly_stats)

# codec が無かったら StopIteration 例外が上がる
recvonly_codec_stats = next(
s for s in recvonly_stats if s.get("type") == "codec" and s.get("mimeType") == "audio/opus"
Expand Down

0 comments on commit cd0be27

Please sign in to comment.