Your message dated Fri, 02 Dec 2022 02:21:42 +0100
with message-id <166994410270.1178998.2231665922287168...@auryn.jones.dk>
and subject line Re: Bug#1013365: python-aiortc: autopkgtest regression on 
armhf: [Errno 542398533] Generic error in an external library
has caused the Debian Bug report #1013365,
regarding python-aiortc: autopkgtest regression on armhf: [Errno 542398533] 
Generic error in an external library
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1013365: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1013365
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- 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

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


--- End Message ---
--- Begin Message ---
Quoting Paul Gevers (2022-06-22 22:24:48)
> 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:

This seems fixed outside of this package - possibly in python-av...

 - Jonas

-- 
 * Jonas Smedegaard - idealist & Internet-arkitekt
 * Tlf.: +45 40843136  Website: http://dr.jones.dk/
 * Sponsorship: https://ko-fi.com/drjones

 [x] quote me freely  [ ] ask before reusing  [ ] keep private

Attachment: signature.asc
Description: signature


--- End Message ---

Reply via email to