Source: python-aiortc Version: 1.3.2-1 Severity: serious User: debian...@lists.debian.org Usertags: regression
Dear maintainer(s),With a recent upload of python-aiortc the autopkgtest of python-aiortc fails in testing on armhf when that autopkgtest is run with the binary packages of python-aiortc from unstable. It passes when run with only packages from testing. In tabular form:
pass fail python-aiortc from testing 1.3.2-1 all others from testing from testing I copied some of the output at the bottom of this report.Currently this regression is blocking the migration to testing [1]. Can you please investigate the situation and fix it?
More information about this bug and the reason for filing it can be found on https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation Paul [1] https://qa.debian.org/excuses.php?package=python-aiortc https://ci.debian.net/data/autopkgtest/testing/armhf/p/python-aiortc/22926423/log.gz=================================== FAILURES =================================== _____________________ MediaRecorderTest.test_video_mp4_uhd _____________________
self = <tests.test_contrib_media.MediaRecorderTest testMethod=test_video_mp4_uhd>
@asynctest async def test_video_mp4_uhd(self): path = self.temporary_path("test.mp4") recorder = MediaRecorder(path) recorder.addTrack(VideoStreamTrackUhd()) await recorder.start() await asyncio.sleep(2)
await recorder.stop()
tests/test_contrib_media.py:651: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/aiortc/contrib/media.py:383: in stop
for packet in context.stream.encode(None): av/stream.pyx:164: in av.stream.Stream.encode ??? av/codec/context.pyx:492: in av.codec.context.CodecContext.encode ???av/codec/context.pyx:411: in av.codec.context.CodecContext._send_frame_and_recv
??? av/codec/context.pyx:469: in av.codec.context.CodecContext._recv_packet ???_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
E av.error.ExternalError: [Errno 542398533] Generic error in an external library???
av/error.pyx:336: ExternalError----------------------------- Captured stderr call -----------------------------
[libx264 @ 0x1425410] using cpu capabilities: ARMv6 NEON [libx264 @ 0x1425410] profile High, level 5.1, 4:2:0, 8-bit[libx264 @ 0x1425410] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=33 lookahead_threads=16 sliced_threads=1 slices=33 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1024 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
x264 [error]: malloc of size 26198688 failed x264 [error]: malloc of size 43687792 failed____________________________ H264Test.test_encoder _____________________________
self = <aiortc.codecs.h264.H264Encoder object at 0xeb813328> frame = <av.VideoFrame #0, pts=0 yuv420p 640x480 at 0xeb817610> force_keyframe = False def _encode_frame( self, frame: av.VideoFrame, force_keyframe: bool ) -> Iterator[bytes]: if self.codec and ( frame.width != self.codec.width or frame.height != self.codec.height # we only adjust bitrate if it changes by over 10%or abs(self.target_bitrate - self.codec.bit_rate) / self.codec.bit_rate
> 0.1 ): self.buffer_data = b"" self.buffer_pts = None self.codec = None # reset the picture type, otherwise no B-frames are produced frame.pict_type = av.video.frame.PictureType.NONE if self.codec is None: try:
"h264_omx", frame.width, frame.height, bitrate=self.target_bitrateself.codec, self.codec_buffering = create_encoder_context(
)/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:285: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
codec_name = 'h264_omx', width = 640, height = 480, bitrate = 1000000 def create_encoder_context( codec_name: str, width: int, height: int, bitrate: int ) -> Tuple[av.CodecContext, bool]: codec = av.CodecContext.create(codec_name, "w") codec.width = width codec.height = height codec.bit_rate = bitrate codec.pix_fmt = "yuv420p" codec.framerate = fractions.Fraction(MAX_FRAME_RATE, 1) codec.time_base = fractions.Fraction(1, MAX_FRAME_RATE) codec.options = { "profile": "baseline", "level": "31", "tune": "zerolatency", # does nothing using h264_omx }
codec.open()
/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
E av.error.EncoderNotFoundError: [Errno 1129203192] Encoder not found av/error.pyx:336: EncoderNotFoundError During handling of the above exception, another exception occurred: self = <tests.test_h264.H264Test testMethod=test_encoder> def test_encoder(self): encoder = get_encoder(H264_CODEC) self.assertIsInstance(encoder, H264Encoder) frame = self.create_video_frame(width=640, height=480, pts=0)
packages, timestamp = encoder.encode(frame)
tests/test_h264.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:320: in encode
return self._packetize(packages), timestamp /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:255: in _packetize package = next(packages_iterator, None) /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:289: in _encode_frame self.codec, self.codec_buffering = create_encoder_context(/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: in create_encoder_context
codec.open() av/codec/context.pyx:267: in av.codec.context.CodecContext.open ??? av/codec/context.pyx:289: in av.codec.context.CodecContext.open ???_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
E av.error.ExternalError: [Errno 542398533] Generic error in an external library???
av/error.pyx:336: ExternalError----------------------------- Captured stderr call -----------------------------
[h264_omx @ 0x49b70870] libOMX_Core.so not found [h264_omx @ 0x49b70870] libOmxCore.so not found [libx264 @ 0xeb7435d0] using cpu capabilities: ARMv6 NEON_______________________ H264Test.test_encoder_buffering ________________________
self = <aiortc.codecs.h264.H264Encoder object at 0xeb813388> frame = <av.VideoFrame #0, pts=0 yuv420p 640x480 at 0xeb8346f0> force_keyframe = False def _encode_frame( self, frame: av.VideoFrame, force_keyframe: bool ) -> Iterator[bytes]: if self.codec and ( frame.width != self.codec.width or frame.height != self.codec.height # we only adjust bitrate if it changes by over 10%or abs(self.target_bitrate - self.codec.bit_rate) / self.codec.bit_rate
> 0.1 ): self.buffer_data = b"" self.buffer_pts = None self.codec = None # reset the picture type, otherwise no B-frames are produced frame.pict_type = av.video.frame.PictureType.NONE if self.codec is None: try:
"h264_omx", frame.width, frame.height, bitrate=self.target_bitrateself.codec, self.codec_buffering = create_encoder_context(
)/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:285: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = ('h264_omx', 640, 480), kwargs = {'bitrate': 1000000} def mock_create_encoder_context(*args, **kwargs):
codec, _ = create_encoder_context(*args, **kwargs)
tests/test_h264.py:123: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
codec_name = 'h264_omx', width = 640, height = 480, bitrate = 1000000 def create_encoder_context( codec_name: str, width: int, height: int, bitrate: int ) -> Tuple[av.CodecContext, bool]: codec = av.CodecContext.create(codec_name, "w") codec.width = width codec.height = height codec.bit_rate = bitrate codec.pix_fmt = "yuv420p" codec.framerate = fractions.Fraction(MAX_FRAME_RATE, 1) codec.time_base = fractions.Fraction(1, MAX_FRAME_RATE) codec.options = { "profile": "baseline", "level": "31", "tune": "zerolatency", # does nothing using h264_omx }
codec.open()
/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
E av.error.EncoderNotFoundError: [Errno 1129203192] Encoder not found av/error.pyx:336: EncoderNotFoundError During handling of the above exception, another exception occurred: self = <tests.test_h264.H264Test testMethod=test_encoder_buffering> def test_encoder_buffering(self): create_encoder_context = h264.create_encoder_context def mock_create_encoder_context(*args, **kwargs): codec, _ = create_encoder_context(*args, **kwargs) return FragmentedCodecContext(codec), True h264.create_encoder_context = mock_create_encoder_context try: encoder = get_encoder(H264_CODEC) self.assertIsInstance(encoder, H264Encoder)frame = self.create_video_frame(width=640, height=480, pts=0)
packages, timestamp = encoder.encode(frame)
tests/test_h264.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:320: in encode
return self._packetize(packages), timestamp /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:255: in _packetize package = next(packages_iterator, None) /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:289: in _encode_frame self.codec, self.codec_buffering = create_encoder_context( tests/test_h264.py:123: in mock_create_encoder_context codec, _ = create_encoder_context(*args, **kwargs)/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: in create_encoder_context
codec.open() av/codec/context.pyx:267: in av.codec.context.CodecContext.open ??? av/codec/context.pyx:289: in av.codec.context.CodecContext.open ???_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
E av.error.ExternalError: [Errno 542398533] Generic error in an external library???
av/error.pyx:336: ExternalError----------------------------- Captured stderr call -----------------------------
[h264_omx @ 0xeb707e60] libOMX_Core.so not found [h264_omx @ 0xeb707e60] libOmxCore.so not found [libx264 @ 0xeb705490] using cpu capabilities: ARMv6 NEON_____________________ H264Test.test_encoder_target_bitrate _____________________
self = <aiortc.codecs.h264.H264Encoder object at 0xeb94f4f0> frame = <av.VideoFrame #0, pts=0 yuv420p 640x480 at 0xeb834798> force_keyframe = False def _encode_frame( self, frame: av.VideoFrame, force_keyframe: bool ) -> Iterator[bytes]: if self.codec and ( frame.width != self.codec.width or frame.height != self.codec.height # we only adjust bitrate if it changes by over 10%or abs(self.target_bitrate - self.codec.bit_rate) / self.codec.bit_rate
> 0.1 ): self.buffer_data = b"" self.buffer_pts = None self.codec = None # reset the picture type, otherwise no B-frames are produced frame.pict_type = av.video.frame.PictureType.NONE if self.codec is None: try:
"h264_omx", frame.width, frame.height, bitrate=self.target_bitrateself.codec, self.codec_buffering = create_encoder_context(
)/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:285: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
codec_name = 'h264_omx', width = 640, height = 480, bitrate = 1000000 def create_encoder_context( codec_name: str, width: int, height: int, bitrate: int ) -> Tuple[av.CodecContext, bool]: codec = av.CodecContext.create(codec_name, "w") codec.width = width codec.height = height codec.bit_rate = bitrate codec.pix_fmt = "yuv420p" codec.framerate = fractions.Fraction(MAX_FRAME_RATE, 1) codec.time_base = fractions.Fraction(1, MAX_FRAME_RATE) codec.options = { "profile": "baseline", "level": "31", "tune": "zerolatency", # does nothing using h264_omx }
codec.open()
/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
E av.error.EncoderNotFoundError: [Errno 1129203192] Encoder not found av/error.pyx:336: EncoderNotFoundError During handling of the above exception, another exception occurred: self = <tests.test_h264.H264Test testMethod=test_encoder_target_bitrate> def test_encoder_target_bitrate(self): encoder = get_encoder(H264_CODEC) self.assertIsInstance(encoder, H264Encoder) self.assertEqual(encoder.target_bitrate, 1000000) frame = self.create_video_frame(width=640, height=480, pts=0)
packages, timestamp = encoder.encode(frame)
tests/test_h264.py:147: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:320: in encode
return self._packetize(packages), timestamp /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:255: in _packetize package = next(packages_iterator, None) /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:289: in _encode_frame self.codec, self.codec_buffering = create_encoder_context(/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: in create_encoder_context
codec.open() av/codec/context.pyx:267: in av.codec.context.CodecContext.open ??? av/codec/context.pyx:289: in av.codec.context.CodecContext.open ???_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
E av.error.ExternalError: [Errno 542398533] Generic error in an external library???
av/error.pyx:336: ExternalError----------------------------- Captured stderr call -----------------------------
[h264_omx @ 0x4a771980] libOMX_Core.so not found [h264_omx @ 0x4a771980] libOmxCore.so not found [libx264 @ 0xeb742b00] using cpu capabilities: ARMv6 NEON_________________________ H264Test.test_frame_encoder __________________________
self = <aiortc.codecs.h264.H264Encoder object at 0xeb94fee0> frame = <av.VideoFrame #0, pts=0 yuv420p 640x480 at 0xeb988140> force_keyframe = False def _encode_frame( self, frame: av.VideoFrame, force_keyframe: bool ) -> Iterator[bytes]: if self.codec and ( frame.width != self.codec.width or frame.height != self.codec.height # we only adjust bitrate if it changes by over 10%or abs(self.target_bitrate - self.codec.bit_rate) / self.codec.bit_rate
> 0.1 ): self.buffer_data = b"" self.buffer_pts = None self.codec = None # reset the picture type, otherwise no B-frames are produced frame.pict_type = av.video.frame.PictureType.NONE if self.codec is None: try:
"h264_omx", frame.width, frame.height, bitrate=self.target_bitrateself.codec, self.codec_buffering = create_encoder_context(
)/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:285: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
codec_name = 'h264_omx', width = 640, height = 480, bitrate = 1000000 def create_encoder_context( codec_name: str, width: int, height: int, bitrate: int ) -> Tuple[av.CodecContext, bool]: codec = av.CodecContext.create(codec_name, "w") codec.width = width codec.height = height codec.bit_rate = bitrate codec.pix_fmt = "yuv420p" codec.framerate = fractions.Fraction(MAX_FRAME_RATE, 1) codec.time_base = fractions.Fraction(1, MAX_FRAME_RATE) codec.options = { "profile": "baseline", "level": "31", "tune": "zerolatency", # does nothing using h264_omx }
codec.open()
/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
E av.error.EncoderNotFoundError: [Errno 1129203192] Encoder not found av/error.pyx:336: EncoderNotFoundError During handling of the above exception, another exception occurred: self = <tests.test_h264.H264Test testMethod=test_frame_encoder> def test_frame_encoder(self): encoder = get_encoder(H264_CODEC) frame = self.create_video_frame(width=640, height=480, pts=0)
packages = list(encoder._encode_frame(frame, False))
tests/test_h264.py:254: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:289: in _encode_frame
self.codec, self.codec_buffering = create_encoder_context(/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: in create_encoder_context
codec.open() av/codec/context.pyx:267: in av.codec.context.CodecContext.open ??? av/codec/context.pyx:289: in av.codec.context.CodecContext.open ???_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
E av.error.ExternalError: [Errno 542398533] Generic error in an external library???
av/error.pyx:336: ExternalError----------------------------- Captured stderr call -----------------------------
[h264_omx @ 0x49bf2810] libOMX_Core.so not found [h264_omx @ 0x49bf2810] libOmxCore.so not found [libx264 @ 0xeb7258f0] using cpu capabilities: ARMv6 NEON_______________________ H264Test.test_roundtrip_1280_720 _______________________
self = <tests.test_h264.H264Test testMethod=test_roundtrip_1280_720> def test_roundtrip_1280_720(self):
self.roundtrip_video(H264_CODEC, 1280, 720)
tests/test_h264.py:163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/codecs.py:108: in roundtrip_video
input_frames = self.create_video_frames( tests/codecs.py:57: in create_video_frames self.create_video_frame( tests/codecs.py:43: in create_video_frame frame = VideoFrame(width=width, height=height, format=format) av/video/frame.pyx:84: in av.video.frame.VideoFrame.__cinit__ ??? av/video/frame.pyx:110: in av.video.frame.VideoFrame._init ???_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
E av.error.MemoryError: [Errno 12] Cannot allocate memory av/error.pyx:336: MemoryError_______________________ H264Test.test_roundtrip_320_240 ________________________
self = <aiortc.codecs.h264.H264Encoder object at 0xeb97ad90> frame = <av.VideoFrame #0, pts=0 yuv420p 320x240 at 0xeb988d10> force_keyframe = False def _encode_frame( self, frame: av.VideoFrame, force_keyframe: bool ) -> Iterator[bytes]: if self.codec and ( frame.width != self.codec.width or frame.height != self.codec.height # we only adjust bitrate if it changes by over 10%or abs(self.target_bitrate - self.codec.bit_rate) / self.codec.bit_rate
> 0.1 ): self.buffer_data = b"" self.buffer_pts = None self.codec = None # reset the picture type, otherwise no B-frames are produced frame.pict_type = av.video.frame.PictureType.NONE if self.codec is None: try:
"h264_omx", frame.width, frame.height, bitrate=self.target_bitrateself.codec, self.codec_buffering = create_encoder_context(
)/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:285: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
codec_name = 'h264_omx', width = 320, height = 240, bitrate = 1000000 def create_encoder_context( codec_name: str, width: int, height: int, bitrate: int ) -> Tuple[av.CodecContext, bool]: codec = av.CodecContext.create(codec_name, "w") codec.width = width codec.height = height codec.bit_rate = bitrate codec.pix_fmt = "yuv420p" codec.framerate = fractions.Fraction(MAX_FRAME_RATE, 1) codec.time_base = fractions.Fraction(1, MAX_FRAME_RATE) codec.options = { "profile": "baseline", "level": "31", "tune": "zerolatency", # does nothing using h264_omx }
codec.open()
/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
E av.error.EncoderNotFoundError: [Errno 1129203192] Encoder not found av/error.pyx:336: EncoderNotFoundError During handling of the above exception, another exception occurred: self = <tests.test_h264.H264Test testMethod=test_roundtrip_320_240> def test_roundtrip_320_240(self):
self.roundtrip_video(H264_CODEC, 320, 240)
tests/test_h264.py:177: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/codecs.py:113: in roundtrip_video
packages, timestamp = encoder.encode(frame) /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:320: in encode return self._packetize(packages), timestamp /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:255: in _packetize package = next(packages_iterator, None) /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:289: in _encode_frame self.codec, self.codec_buffering = create_encoder_context(/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: in create_encoder_context
codec.open() av/codec/context.pyx:267: in av.codec.context.CodecContext.open ??? av/codec/context.pyx:289: in av.codec.context.CodecContext.open ???_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
E av.error.ExternalError: [Errno 542398533] Generic error in an external library???
av/error.pyx:336: ExternalError----------------------------- Captured stderr call -----------------------------
[h264_omx @ 0xeb7360a0] libOMX_Core.so not found [h264_omx @ 0xeb7360a0] libOmxCore.so not found [libx264 @ 0xeb736440] using cpu capabilities: ARMv6 NEON x264 [error]: malloc of size 1500068 failed_______________________ H264Test.test_roundtrip_640_480 ________________________
self = <aiortc.codecs.h264.H264Encoder object at 0xeb97a7f0> frame = <av.VideoFrame #0, pts=0 yuv420p 640x480 at 0xeb9881b0> force_keyframe = False def _encode_frame( self, frame: av.VideoFrame, force_keyframe: bool ) -> Iterator[bytes]: if self.codec and ( frame.width != self.codec.width or frame.height != self.codec.height # we only adjust bitrate if it changes by over 10%or abs(self.target_bitrate - self.codec.bit_rate) / self.codec.bit_rate
> 0.1 ): self.buffer_data = b"" self.buffer_pts = None self.codec = None # reset the picture type, otherwise no B-frames are produced frame.pict_type = av.video.frame.PictureType.NONE if self.codec is None: try:
"h264_omx", frame.width, frame.height, bitrate=self.target_bitrateself.codec, self.codec_buffering = create_encoder_context(
)/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:285: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
codec_name = 'h264_omx', width = 640, height = 480, bitrate = 1000000 def create_encoder_context( codec_name: str, width: int, height: int, bitrate: int ) -> Tuple[av.CodecContext, bool]: codec = av.CodecContext.create(codec_name, "w") codec.width = width codec.height = height codec.bit_rate = bitrate codec.pix_fmt = "yuv420p" codec.framerate = fractions.Fraction(MAX_FRAME_RATE, 1) codec.time_base = fractions.Fraction(1, MAX_FRAME_RATE) codec.options = { "profile": "baseline", "level": "31", "tune": "zerolatency", # does nothing using h264_omx }
codec.open()
/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
av/codec/context.pyx:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
???
E av.error.EncoderNotFoundError: [Errno 1129203192] Encoder not found av/error.pyx:336: EncoderNotFoundError During handling of the above exception, another exception occurred: self = <tests.test_h264.H264Test testMethod=test_roundtrip_640_480> def test_roundtrip_640_480(self):
self.roundtrip_video(H264_CODEC, 640, 480)
tests/test_h264.py:169: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/codecs.py:113: in roundtrip_video
packages, timestamp = encoder.encode(frame) /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:320: in encode return self._packetize(packages), timestamp /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:255: in _packetize package = next(packages_iterator, None) /usr/lib/python3/dist-packages/aiortc/codecs/h264.py:289: in _encode_frame self.codec, self.codec_buffering = create_encoder_context(/usr/lib/python3/dist-packages/aiortc/codecs/h264.py:138: in create_encoder_context
codec.open() av/codec/context.pyx:267: in av.codec.context.CodecContext.open ??? av/codec/context.pyx:289: in av.codec.context.CodecContext.open ???_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
E av.error.ExternalError: [Errno 542398533] Generic error in an external library???
av/error.pyx:336: ExternalError----------------------------- Captured stderr call -----------------------------
[h264_omx @ 0x4aee1400] libOMX_Core.so not found [h264_omx @ 0x4aee1400] libOmxCore.so not found [libx264 @ 0x4aee17a0] using cpu capabilities: ARMv6 NEON=============================== warnings summary ===============================
../../../../../usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) -- Docs: https://docs.pytest.org/en/stable/warnings.html=========================== short test summary info ============================ FAILED tests/test_contrib_media.py::MediaRecorderTest::test_video_mp4_uhd - a... FAILED tests/test_h264.py::H264Test::test_encoder - av.error.ExternalError: [... FAILED tests/test_h264.py::H264Test::test_encoder_buffering - av.error.Extern... FAILED tests/test_h264.py::H264Test::test_encoder_target_bitrate - av.error.E... FAILED tests/test_h264.py::H264Test::test_frame_encoder - av.error.ExternalEr... FAILED tests/test_h264.py::H264Test::test_roundtrip_1280_720 - av.error.Memor... FAILED tests/test_h264.py::H264Test::test_roundtrip_320_240 - av.error.Extern... FAILED tests/test_h264.py::H264Test::test_roundtrip_640_480 - av.error.Extern... ======= 8 failed, 364 passed, 69 skipped, 1 warning in 80.10s (0:01:20) ========
autopkgtest [01:14:42]: test command1
OpenPGP_signature
Description: OpenPGP digital signature