Bug#1013365: python-aiortc: autopkgtest regression on armhf: [Errno 542398533] Generic error in an external library

2022-12-01 Thread Jonas Smedegaard
Source: python-aiortc
Followup-For: Bug #1013365

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

eems this bug was not in aiortc after all: Disappeared in a rebuild.

 - Jonas


-BEGIN PGP SIGNATURE-

iQIzBAEBCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAmOIkNwACgkQLHwxRsGg
ASHFmg//cIthQQWrzU2bZdwZEIaIpM3Gym7wwdyIPFkonVbLEDJA3Qm4ZXJEVjh0
dl2IZR6BTTfkgdLAoQ3P5dBjk5YMTb7TQjwxpt/OJ1jK/Rx83htaGwm1IwIlr/Rq
YZQ0DlJxrHdKQ3Vv/H3xHxMKIibKc3G0o1LzZrZr4TfASOZVXyh4GIHME7t2kRF1
UByPE0Mq4SdY0MmI0bDV0xwgiIKVk5UYGz9bUOxAUkJnnp+KHSN7EFC5DNG20qUi
mp/LfVyN6ivt0mtSF7lAOhwZiZHJ+LFTPsx2ZVvmdedPxWa8UFLqr38+P2+ba/tf
MOdv1SH2M+OE21C3a/1C0A5BHPOWWpkwFrOPHwP3/MW5++S7osoO11EPFLbXm4z3
cidTPcp083M3taI86IiafMHuF1YkCEXQE+/R0+AW2QDub9vT+H8xrBHhIP1rvOCo
ekmzGceyMnL9QGkKXC68hzbAoYzLAfyPkpCTym87lY5wWKCL2frs7xXxq/oi4TLI
UpNWgavOrGKt6HTtCD3NIRbTxpkrgKN43GsqYLMD78588cAsAknAW7FHfApNSI9T
6F1Qc2Hwd+zHLmofNdxIfuJGa26KW6hRcke4HjEdTyRKf+MpoY26bSVQP39Xoyav
DKrGaKQ2wjvVJfY85sOtpAFjLsqgxFZOzsGrWaCneLCRlDs6k1E=
=qtEA
-END PGP SIGNATURE-



Bug#1013365: python-aiortc: autopkgtest regression on armhf: [Errno 542398533] Generic error in an external library

2022-06-22 Thread Paul Gevers

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:


   passfail
python-aiortc  from testing1.3.2-1
all others from testingfrom 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 = 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 = 
frame = 
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 = 100

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",