[Ffmpeg-devel] nut segdefault on powerpc.

castet.matthieu at free.fr castet.matthieu
Thu May 19 11:35:13 CEST 2005


Hi,

when running the test on powerpc64 compilled as 32 bits binary with -cc='gcc
-m32', it failed on nut. They pass with 64 bits binary.

What's wrong ?

mat at verone:~/ffmpeg/tests> ../ffmpeg_g -y -bitexact -dct_algo 1 -idct_algo 2 -t
1 -y -qscale 10 -f pgmyuv -i vsynth1/%d.pgm -f s16le -i asynth1.sw -acodec mp2
./data/b-libav.nut
ffmpeg version 0.4.9-pre1, build 4755, Copyright (c) 2000-2004 Fabrice Bellard
  configuration:  --cc=gcc -m32
  built on May 19 2005 11:12:34, gcc: 3.4.2
Input #0, image2, from 'vsynth1/%d.pgm':
  Duration: 00:00:02.0, start: 0.000000, bitrate: N/A
  Stream #0.0: Video: pgmyuv, yuv420p, 352x288, 25.00 fps
Input #1, s16le, from 'asynth1.sw':
  Duration: N/A, bitrate: N/A
  Stream #1.0: Audio: pcm_s16le, 44100 Hz, mono, 705 kb/s
Output #0, nut, to './data/b-libav.nut':
  Stream #0.0: Video: mpeg4, yuv420p, 352x288, 25.00 fps, q=2-31, 200 kb/s
  Stream #0.1: Audio: mp2, 44100 Hz, mono, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #1.0 -> #0.1
Press [q] to stop encoding
frame=   25 q=10.0 Lsize=     325kB time=1.0 bitrate=2659.5kbits/s
video:316kB audio:8kB global headers:0kB muxing overhead 0.184135%
mat at verone:~/ffmpeg/tests> ../ffmpeg_g -y -bitexact -dct_algo 1 -idct_algo 2 -i
./data/b-libav.nut -f crc ./data/ffmpeg.crc
ffmpeg version 0.4.9-pre1, build 4755, Copyright (c) 2000-2004 Fabrice Bellard
  configuration:  --cc=gcc -m32
  built on May 19 2005 11:12:34, gcc: 3.4.2
[nut @ 0x101c28fc]Stream header 0 checksum mismatch
[nut @ 0x101c28fc]Stream header 1 checksum mismatch
Segmentation fault
mat at verone:~/ffmpeg/tests> gdb ../ffmpeg_g
GNU gdb 6.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "ppc-suse-linux"...Using host libthread_db library
"/lib/tls/libthread_db.so.1".

(gdb) r -y -bitexact -dct_algo 1 -idct_algo 2 -i ./data/b-libav.nut -f crc
./data/ffmpeg.crc
Starting program: /home/mat/ffmpeg/ffmpeg_g -y -bitexact -dct_algo 1 -idct_algo
2 -i ./data/b-libav.nut -f crc ./data/ffmpeg.crc
ffmpeg version 0.4.9-pre1, build 4755, Copyright (c) 2000-2004 Fabrice Bellard
  configuration:  --cc=gcc -m32
  built on May 19 2005 11:12:34, gcc: 3.4.2
[nut @ 0x101c28fc]Stream header 0 checksum mismatch
[nut @ 0x101c28fc]Stream header 1 checksum mismatch

Program received signal SIGSEGV, Segmentation fault.
0x10028f68 in update_adler32 (adler=0,
    buf=0x16eac2f <Address 0x16eac2f out of bounds>, len=4294829295)
    at crc.c:48
48                  DO16(buf);
(gdb) bt
#0  0x10028f68 in update_adler32 (adler=0,
    buf=0x16eac2f <Address 0x16eac2f out of bounds>, len=4294829295)
    at crc.c:48
#1  0x100598d4 in fill_buffer (s=0x80078071) at aviobuf.c:264
#2  0x10059a04 in get_byte (s=0x1028d090) at aviobuf.c:304
#3  0x10044e10 in nut_read_header (s=0x1028d080, ap=0x16eac2f) at nut.c:363
#4  0x10017410 in av_open_input_stream (ic_ptr=0xffffd930, pb=0xfffffffb,
    filename=0xffffe623 "./data/b-libav.nut", fmt=0x102219f0, ap=0xffffd8e0)
    at utils.c:446
#5  0x1001d2d4 in av_open_input_file (ic_ptr=0xffffd930,
    filename=0xffffe623 "./data/b-libav.nut", fmt=0x102219f0, buf_size=0,
    ap=0x4e530000) at utils.c:557
#6  0x100116d0 in opt_input_file (filename=0xffffe623 "./data/b-libav.nut")
    at ffmpeg.c:2887
#7  0x100165fc in parse_options (argc=12, argv=0xffffe404, options=0x101c1478)
    at cmdutils.c:89
#8  0x1001457c in main (argc=12, argv=0xffffe404) at ffmpeg.c:4217
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x10028f48 to 0x10028f88:
0x10028f48 <update_adler32+284>:        addi    r9,r10,1
0x10028f4c <update_adler32+288>:        lbz     r3,1(r10)
0x10028f50 <update_adler32+292>:        add     r7,r8,r4
0x10028f54 <update_adler32+296>:        add     r0,r11,r8
0x10028f58 <update_adler32+300>:        lbz     r6,1(r9)
0x10028f5c <update_adler32+304>:        addi    r9,r9,1
0x10028f60 <update_adler32+308>:        add     r10,r7,r3
0x10028f64 <update_adler32+312>:        add     r4,r0,r7
0x10028f68 <update_adler32+316>:        lbz     r8,1(r9)
0x10028f6c <update_adler32+320>:        add     r3,r4,r10
0x10028f70 <update_adler32+324>:        add     r11,r10,r6
0x10028f74 <update_adler32+328>:        addi    r4,r9,2
0x10028f78 <update_adler32+332>:        add     r10,r11,r8
0x10028f7c <update_adler32+336>:        add     r6,r3,r11
0x10028f80 <update_adler32+340>:        add     r3,r6,r10
0x10028f84 <update_adler32+344>:        addi    r12,r12,-16
End of assembler dump.
(gdb) info all-registers
r0             0x16e8873        24021107
r1             0xffffcaf0       4294953712
r2             0x4004b860       1074051168
r3             0x0      0
r4             0x16eac2f        24030255
r5             0xfffde4ef       4294829295
r6             0x0      0
r7             0x23bc   9148
r8             0x23bc   9148
r9             0x102a5fff       271212543
r10            0x23bc   9148
r11            0x16e64b7        24011959
r12            0xb80    2944
r13            0x10234888       270747784
r14            0x0      0
r15            0x0      0
r16            0x4e530000       1314062336
r17            0x1028d080       271110272
r18            0x4e531140       1314066752
r19            0x5bf2f9db       1542650331
r20            0x0      0
r21            0x1028e000       271114240
r22            0x1028d080       271110272
---Type <return> to continue, or q <return> to quit---
r23            0x10030000       268632064
r24            0x1028d090       271110288
r25            0x2f230000       790822912
r26            0xeeca0000       4006215680
r27            0x1028d090       271110288
r28            0x0      0
r29            0x0      0
r30            0xfff1   65521
r31            0x80078071       2147975281
f0             -0.80000001192092896     (raw 0xbfe99999a0000000)
f1             0        (raw 0x0000000000000000)
f2             0        (raw 0x0000000000000000)
f3             0        (raw 0x0000000000000000)
f4             0        (raw 0x0000000000000000)
f5             0        (raw 0x0000000000000000)
f6             0        (raw 0x0000000000000000)
f7             0        (raw 0x0000000000000000)
f8             0        (raw 0x0000000000000000)
f9             0        (raw 0x0000000000000000)
f10            0        (raw 0x0000000000000000)
f11            0        (raw 0x0000000000000000)
f12            0        (raw 0x0000000000000000)
f13            4.9406564584124654e-324  (raw 0x0000000000000001)
---Type <return> to continue, or q <return> to quit---
f14            0        (raw 0x0000000000000000)
f15            0        (raw 0x0000000000000000)
f16            0        (raw 0x0000000000000000)
f17            0        (raw 0x0000000000000000)
f18            0        (raw 0x0000000000000000)
f19            0        (raw 0x0000000000000000)
f20            0        (raw 0x0000000000000000)
f21            0        (raw 0x0000000000000000)
f22            0        (raw 0x0000000000000000)
f23            0        (raw 0x0000000000000000)
f24            0        (raw 0x0000000000000000)
f25            0        (raw 0x0000000000000000)
f26            0        (raw 0x0000000000000000)
f27            0        (raw 0x0000000000000000)
f28            0        (raw 0x0000000000000000)
f29            0        (raw 0x0000000000000000)
f30            0        (raw 0x0000000000000000)
f31            0        (raw 0x0000000000000000)
pc             0x10028f68       268603240
ps             0xd932   55602
cr             0x24042448       604251208
lr             0x100598d4       268802260
ctr            0xb8     184
---Type <return> to continue, or q <return> to quit---
xer            0x0      0
fpscr          0x0      0
vr0            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr1            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr2            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr3            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr4            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr5            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr6            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
---Type <return> to continue, or q <return> to quit---
vr7            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr8            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr9            {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr10           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr11           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr12           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr13           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr14           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
---Type <return> to continue, or q <return> to quit---
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr15           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr16           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr17           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr18           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr19           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr20           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr21           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr22           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
---Type <return> to continue, or q <return> to quit---
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr23           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr24           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr25           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr26           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr27           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr28           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr29           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
---Type <return> to continue, or q <return> to quit---
vr30           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vr31           {uint128 = 0x00000000000000000000000000000000, v4_float = {0x0,
    0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0,
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v16_int8 = {0x0 <repeats 16 times>}}
vscr           0x0      0
vrsave         0x0      0





More information about the ffmpeg-devel mailing list