--- Begin Message ---
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:
self.codec, self.codec_buffering = create_encoder_context(
"h264_omx", frame.width, frame.height,
bitrate=self.target_bitrate
)
/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:
self.codec, self.codec_buffering = create_encoder_context(
"h264_omx", frame.width, frame.height,
bitrate=self.target_bitrate
)
/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:
self.codec, self.codec_buffering = create_encoder_context(
"h264_omx", frame.width, frame.height,
bitrate=self.target_bitrate
)
/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:
self.codec, self.codec_buffering = create_encoder_context(
"h264_omx", frame.width, frame.height,
bitrate=self.target_bitrate
)
/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:
self.codec, self.codec_buffering = create_encoder_context(
"h264_omx", frame.width, frame.height,
bitrate=self.target_bitrate
)
/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:
self.codec, self.codec_buffering = create_encoder_context(
"h264_omx", frame.width, frame.height,
bitrate=self.target_bitrate
)
/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
--- End Message ---