Hi Paul,Thanks for the report. Now I know why abel.debian.org or qemu-user-static doesn't reproduce the bug. It is because your environment supports "neon" and ffmpeg will use that for acceleration.
But abel and qemu-user-static doesn't support neon. I think if you "cat /proc/cpuinfo" and neon will be in the Features.
I'll see if I can use cpuflags in ffmpeg to disable neon on my test. So that it can pass.
Yours, Paul Paul Gevers 於 2022/4/5 03:16 寫道:
Hi Bus errorautopkgtest [19:03:51]: test decoding-test-mp4-raw: -----------------------] autopkgtest [19:03:51]: test decoding-test-mp4-raw: - - - - - - - - - - results - - - - - - - - - -decoding-test-mp4-raw FAIL non-zero exit status 135autopkgtest [19:03:51]: - - - - - - - - - - running shell - - - - - - - - - - root@elbrus:/tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src# cd debian/tests/decoding-test-data/ root@elbrus:/tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src/debian/tests/decoding-test-data# ./gentestavi.shSetting pipeline to PAUSED ... Pipeline is PREROLLING ... Redistribute latency... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... Redistribute latency... New clock: GstSystemClock Got EOS from element "pipeline0". Execution ended after 0:00:00.215248380 Setting pipeline to NULL ... Freeing pipeline ... Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... Redistribute latency... New clock: GstSystemClock Got EOS from element "pipeline0". Execution ended after 0:00:00.219812907 Setting pipeline to NULL ... Freeing pipeline ...root@elbrus:/tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src/debian/tests/decoding-test-data# root@elbrus:/tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src/debian/tests/decoding-test-data# root@elbrus:/tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src/debian/tests/decoding-test-data# makeg++ -Wall -g -o test1 test1.cc \ -laviplay -I/usr/include/avifile-0.7 \ -laubio \ -lmroot@elbrus:/tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src/debianroot@elbrus:/tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src/debian/tests/decoding-test-data# apt install gdb libavcodec58-dbgsym< installing gdb and libavcodec58-dbgsym >root@elbrus:/tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src/debian/tests/decoding-test-data# gdb ./test1gdb: warning: Couldn't determine a path for the index cache directory. GNU gdb (Debian 10.1-2+b1) 10.1.90.20210103-git Copyright (C) 2021 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "arm-linux-gnueabihf". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./test1... (gdb) set args test_raw.avi (gdb) runStarting program: /tmp/autopkgtest-lxc.ze1_2t2a/downtmp/build.e5m/src/debian/tests/decoding-test-data/test1 test_raw.avi[Thread debugging using libthread_db enabled]Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".<init> : Avifile RELEASE-0.7.48-220318-20:07-../src/configure<init> : Available CPU flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbsThis binary was compiled for Avifile ver. 1840, the library is ver. 1840 <reader> : Checking: test_raw.avi <AVI reader> : MainHeader: MicroSecPerFrame=40000 MaxBytesPerSec=6112800 PaddingGranularity=0 Flags=[ HAS_INDEX IS_INTERLEAVED ] TotalFrames=250 InitialFrames=0 Streams=2 SuggestedBufferSize=0 WxH=320x240 Scale=0 Rate=0 Start=0 Length=0 <AVI reader> : StreamHeader: Type=vids Handler=DIVX Flags=[ ] InitialFrames=0 Scale=1 Rate=25 Start=0 Length=250 SuggestedBufferSize=12413 Quality=0 SampleSize=0 Rect l,r,t,b=0,0,0,0 <AVI reader> : StreamHeader: Type=auds Handler=0x1 Flags=[ ] InitialFrames=0 Scale=1 Rate=44100 Start=0 Length=450559 SuggestedBufferSize=8192 Quality=0 SampleSize=8 Rect l,r,t,b=0,0,0,0 <AVI reader> : Reading index from offset: 5581514 <AVI reader> : Stream 0 vids : DIVX (0x4944) 250 chunks (0.98KB)<AVI reader> : WARNING: stream header has incorrect dwLength (450559 -> 450560)<AVI reader> : Stream 1 auds : Microsoft PCM (0x1) 440 chunks (3.44KB) [New Thread 0xefdfea20 (LWP 6059)] <reader> : Initialized video stream (chunk tblsz: 250, fmtsz: 40)<codec keeper> : Found 7 plugins (/usr/lib/arm-linux-gnueabihf/avifile-0.7,A:28,V:36)<FFMPEG video decoder> : looking for mpeg4 1482049860 <codec keeper> : Created video decoder: FF OpenDivX <reader> : Initialized audio stream (chunk tblsz: 450560, fmtsz: 18) <codec keeper> : PCM audio decoder created bh.biHeight = -240, bh.biWidth = 320 bh.biHeight < 0, correct the value to 240 Movie size: 320 x 240 [YV12]audio format: 1, Channels: 2, Samples/sec: 44100, Bits/Sample: 32, Bytes/sec: 352800Video Length: 250 Video Pos: 0 Audio Length: 450560 Audio Pos: 0 Decoder YUV capabilities: 0x80000080 CAPS is CAP_YV12 TIME 0 0 <ffodivx> : using DR1[mpeg4 @ 0x455690] Requested frame threading with a custom get_buffer2() implementation which is not marked as thread safe. This is not supported anymore, make your callback thread-safe.Audio read 192 samples, 1536 bytes. Audio frequency 469.27 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.188 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.095 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.086 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.17 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.262 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.267 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.18 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.091 hz Audio read 192 samples, 1536 bytes. Audio frequency 469.09 hz TIME 0.04 1 Thread 1 "test1" received signal SIGBUS, Bus error.0xf6e21532 in ff_put_pixels16_neon () at src/libavcodec/arm/hpeldsp_neon.S:380380 src/libavcodec/arm/hpeldsp_neon.S: No such file or directory. (gdb) bt -full#0 0xf6e21532 in ff_put_pixels16_neon () at src/libavcodec/arm/hpeldsp_neon.S:380No locals.#1 0xf71608fe in mpeg_motion_internal (mb_y=0, is_16x8=0, is_mpeg12=0, h=16, motion_y=0, motion_x=0, pix_op=0x456be8, ref_picture=0x462ab0, field_select=0, bottom_field=0, field_based=0, dest_cr=0x4a60c8 "", dest_cb=0x4a15c8 "", dest_y=0x48e9c8 "", s=0x456330)at src/libavcodec/mpegvideo_motion.c:354ptr_cb = 0x4853c0 '\200' <repeats 22 times>, "H", '\020' <repeats 17 times>, "\021\020\020\020\021[", '\246' <repeats 19 times>, "\245\246\245o", '6' <repeats 19 times>, "777\312\313", '\312' <repeats 20 times>, "\311", 'Z' <repeats 23 times>, "\357", '\360' <repeats 22 times>, '\200' <repeats 22 times>, "H", '\020' <repeats 17 times>... ptr_cr = 0x489ec0 '\200' <repeats 16 times>, "\201\200\200\200\177\200\210\221", '\222' <repeats 16 times>, "\221\222\222\222\221P\017", '\020' <repeats 19 times>, "\021\021\031\"!", '\"' <repeats 19 times>, "#\337\336\336\336\337", '\336' <repeats 17 times>, "\337\360\360\361\360\360\361", '\360' <repeats 16 times>, "\357omnmnmm", 'n' <repeats 16 times>, '\200' <repeats 16 times>, "\201\200\200\200\177\200\210\221", '\222' <repeats 16 times>...dxy = 0 my = <optimized out> src_x = <optimized out> uvsrc_y = 0 src_y = 0 linesize = <optimized out> uvlinesize = <optimized out> ptr_y = <optimized out> uvdxy = 0 mx = <optimized out> uvsrc_x = 0 v_edge_pos = <optimized out> block_y_half = 0 ptr_y = <optimized out> ptr_cb = <optimized out> ptr_cr = <optimized out> dxy = <optimized out> uvdxy = <optimized out> mx = <optimized out> my = <optimized out> src_x = <optimized out> src_y = <optimized out> uvsrc_x = <optimized out> uvsrc_y = <optimized out> v_edge_pos = <optimized out> block_y_half = <optimized out> uvlinesize = <optimized out> linesize = <optimized out> --Type <RET> for more, q to quit, c to continue without paging--c ubuf = <optimized out> vbuf = <optimized out>#2 mpeg_motion (s=0x456330, dest_y=0x48e9c8 "", dest_cb=0x4a15c8 "", dest_cr=0x4a60c8 "", field_select=0, ref_picture=0x462ab0, pix_op=0x456be8, motion_x=0, motion_y=0, h=16, is_16x8=0, mb_y=0) at src/libavcodec/mpegvideo_motion.c:381No locals.#3 0xf71612c6 in mpv_motion_internal (is_mpeg12=0, qpix_op=0x456ff0, pix_op=0x456be8, ref_picture=0x462ab0, dir=0, dest_cr=0x4a60c8 "", dest_cb=0x4a15c8 "", dest_y=0x48e9c8 "", s=0x456330) at src/libavcodec/mpegvideo_motion.c:870i = <optimized out> mb_y = <optimized out> i = <optimized out> mb_y = <optimized out> ref2picture = <optimized out> j = <optimized out>#4 ff_mpv_motion (s=0x456330, dest_y=0x48e9c8 "", dest_cb=0x4a15c8 "", dest_cr=0x4a60c8 "", dir=0, ref_picture=0x462ab0, pix_op=0x456be8, qpix_op=0x456ff0) at src/libavcodec/mpegvideo_motion.c:987No locals.#5 0xf71516ac in mpv_reconstruct_mb_internal (is_mpeg12=0, lowres_flag=0, block=0x46b7e0, s=0x456330) at src/libavcodec/mpegvideo.c:2062dct_linesize = 320 dct_offset = 2560 dest_cb = 0x4a15c8 "" linesize = <optimized out> uvlinesize = <optimized out> readable = <optimized out> block_size = <optimized out> dest_y = 0x48e9c8 "" dest_cr = 0x4a60c8 "" op_pix = <optimized out> op_qpix = <optimized out> op_pix = <optimized out> mb_xy = <optimized out> mb_xy = <optimized out> skip_idct = <optimized out> i = <optimized out> j = <optimized out> dest_y = <optimized out> dest_cb = <optimized out> dest_cr = <optimized out> dct_linesize = <optimized out> dct_offset = <optimized out> op_pix = <optimized out> op_qpix = <optimized out> linesize = <optimized out> uvlinesize = <optimized out> readable = <optimized out> block_size = <optimized out> mbskip_ptr = <optimized out> op_pix = <optimized out> act_block_size = <optimized out> i = <optimized out> w = <optimized out> h = <optimized out> dest_pcm = {<optimized out>, <optimized out>, <optimized out>} linesize = {<optimized out>, <optimized out>, <optimized out>} idx = <optimized out> vsub = <optimized out> hsub = <optimized out> i = <optimized out> w = <optimized out> h = <optimized out> dest_pcm = {<optimized out>, <optimized out>, <optimized out>} linesize = {<optimized out>, <optimized out>, <optimized out>} idx = <optimized out> vsub = <optimized out> hsub = <optimized out>#6 ff_mpv_reconstruct_mb (s=s@entry=0x456330, block=0x46b7e0) at src/libavcodec/mpegvideo.c:2257No locals.#7 0xf6f78af0 in decode_slice (s=s@entry=0x456330) at src/libavcodec/h263dec.c:309ret = 0 part_mask = 127 mb_size = <optimized out> ret = <optimized out>#8 0xf6f79400 in ff_h263_decode_frame (avctx=0x455690, data=0x458540, got_frame=0xfffd66e4, avpkt=<optimized out>) at src/libavcodec/h263dec.c:645buf = 0x5261e8 "" buf_size = 7297 s = <optimized out> ret = 0 slice_ret = 0 pict = 0x458540 retry = <optimized out>#9 0xf6eee128 in decode_simple_internal (discarded_samples=<synthetic pointer>, frame=<optimized out>, avctx=0x455690) at src/libavcodec/decode.c:329pkt = 0x455c20 ret = <optimized out> avci = 0x458060 ds = 0x458074 got_frame = 0 actual_got_frame = <optimized out> avci = <optimized out> ds = <optimized out> pkt = <optimized out> got_frame = <optimized out> actual_got_frame = <optimized out> ret = <optimized out> side = <optimized out> side_size = <optimized out> discard_padding = <optimized out> skip_reason = <optimized out> discard_reason = <optimized out> diff_ts = <optimized out> diff_ts = <optimized out> fside = <optimized out> nb_errors_max = <optimized out> consumed = <optimized out>#10 decode_simple_receive_frame (frame=<optimized out>, avctx=<optimized out>) at src/libavcodec/decode.c:530ret = <optimized out> discarded_samples = <optimized out> ret = <optimized out> discarded_samples = <optimized out>#11 decode_receive_frame_internal (avctx=avctx@entry=0x455690, frame=0x458540) at src/libavcodec/decode.c:550avci = 0x458060 ret = <optimized out>#12 0xf6eeea8a in avcodec_send_packet (avctx=0x455690, avpkt=0xfffd6778) at src/libavcodec/decode.c:617avci = 0x458060 ret = <optimized out>#13 0xef5c6a16 in ?? () from /usr/lib/arm-linux-gnueabihf/avifile-0.7/ffmpeg.soNo symbol table info available. #14 0xf7f8ca68 in ?? () from /lib/arm-linux-gnueabihf/libaviplay-0.7.so.0 No symbol table info available. #15 0x00401c00 in main (argc=2, argv=0xfffefc74) at test1.cc:265 im = 0x454398 pixelData = 0x414000 "\360>\001" version = 1840 filename = 0xfffefdca "test_raw.avi" file = 0x441ac0 videoStream = 0x41af00 audioStream = 0x459c60bh = {biSize = 40, biWidth = 320, biHeight = 240, biPlanes = 1, biBitCount = 12, biCompression = 842094169, biSizeImage = 115200, biXPelsPerMeter = 0, biYPelsPerMeter = 0, biClrUsed = 0, biClrImportant = 0} bhy = {biSize = 40, biWidth = 320, biHeight = 240, biPlanes = 1, biBitCount = 24, biCompression = 1482049860, biSizeImage = 1482049860, biXPelsPerMeter = 0, biYPelsPerMeter = 0, biClrUsed = 0, biClrImportant = 0} wave_fmt = {wFormatTag = 1, nChannels = 2, nSamplesPerSec = 44100, nAvgBytesPerSec = 352800, nBlockAlign = 8, wBitsPerSample = 32, cbSize = 0}fcc = 842094169 caps = -2147483520 width = 320 height = 240audioBuf = <error reading variable audioBuf (value requires 102400 bytes, which is more than max-value-size)>totalAudioSamplesRead = 1920 totalAudioBytesRead = 15360 audioCheckedFlag = true
OpenPGP_signature
Description: OpenPGP digital signature