Ticket #1541 (closed defect: needs_more_info)
flv hangs on ff_vp3_idct_add_neon on ARM Cortex-A8 with gstreamer
| Reported by: | kaijun61 | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | avcodec |
| Version: | git-master | Keywords: | flv arm vp6 |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
a flv file hangs on ff_vp3_idct_add_neon on beagleboard when tested on latest ffmpeg master branch
Attachments
Change History
comment:1 Changed 10 months ago by cehoyos
- Priority changed from normal to important
Please add backtrace together with command line and console output.
comment:2 Changed 10 months ago by kaijun61
I use my gstreamer-based application
root@beagleboard:~# gdbserver localhost:10000 gplayer -a 20051210-w50s.flv
Process gplayer created; pid = 662
Listening on port 10000
Remote debugging from host 192.168.2.7
20051210-w50s.flv
Input #1, flv, from '20051210-w50s.flv':
Duration: 00:00:16.92, start: 0.000000, bitrate: 316 kb/s
Stream #1:0: Video: vp6f, yuv420p, 360x288, 266 kb/s, 25 tbr, 1k tbn, 1k tbc
Stream #1:1: Audio: mp3, 22050 Hz, stereo, s16, 40 kb/s
skipped media type: 1
Setting pipeline to PLAYING...
backtrace is attached as a pic.
comment:4 Changed 10 months ago by kaijun61
I tried ffplay on linux PC. It works
ffplay ~/Videos/20051210-w50s.flv
ffplay version 0.8.12, Copyright (c) 2003-2011 the FFmpeg developers
built on Jun 13 2012 09:57:38 with gcc 4.6.3 20120306 (Red Hat 4.6.3-2)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib --enable-libcelt --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil 51. 9. 1 / 51. 9. 1
libavcodec 53. 8. 0 / 53. 8. 0
libavformat 53. 5. 0 / 53. 5. 0
libavdevice 53. 1. 1 / 53. 1. 1
libavfilter 2. 23. 0 / 2. 23. 0
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x7fc5140023e0] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from '/home/tang/Videos/20051210-w50s.flv':
Metadata:
duration : 17
width : 360
height : 288
videodatarate : 260
framerate : 25
videocodecid : 4
audiodatarate : 40
audiodelay : 0
audiocodecid : 2
canSeekToEnd : 1
creationdate : Fri Feb 03 11:52:46 2006
Duration: 00:00:16.92, start: 0.000000, bitrate: 306 kb/s
Stream #0.0: Video: vp6f, yuv420p, 360x288, 266 kb/s, 25 tbr, 1k tbn, 1k tbc
Stream #0.1: Audio: mp3, 22050 Hz, stereo, s16, 40 kb/s
comment:6 Changed 10 months ago by kaijun61
ffmpeg -i 20051210-w50s.flv
ffmpeg version git-2012-07-16-9b2c0e5 Copyright (c) 2000-2012 the FFmpeg developers
built on Jul 18 2012 14:57:11 with gcc 4.5.3 20110311 (prerelease)
configuration: --enable-shared --enable-pthreads --disable-gpl --enable-postproc --enable-avfilter --enable-swscale --enable-neon --enable-pic --enable-debug=3 --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --cross-prefix=arm-angstrom-linux-gnueabi- --prefix=/usr --disable-x11grab --disable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --disable-libvpx --disable-optimizations --disable-stripping --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O0 -fno-omit-frame-pointer -ggdb3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mthumb-interwork -mno-thumb --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu' --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi --enable-hardcoded-tables --cpu=cortex-a8
WARNING: library configuration mismatch
avutil configuration: --enable-shared --enable-pthreads --disable-gpl --disable-postproc --disable-avfilter --disable-swscale --enable-neon --enable-pic --enable-debug=3 --enable-ffmpeg --enable-ffplay --disable-ffprobe --disable-ffserver --cross-prefix=arm-angstrom-linux-gnueabi- --prefix=/usr --disable-x11grab --disable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --disable-libvpx --disable-optimizations --disable-stripping --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O0 -fno-omit-frame-pointer -ggdb3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mthumb-interwork -mno-thumb --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu' --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi --enable-hardcoded-tables --cpu=cortex-a8
avcodec configuration: --enable-shared --enable-pthreads --disable-gpl --disable-postproc --disable-avfilter --disable-swscale --enable-neon --enable-pic --enable-debug=3 --enable-ffmpeg --enable-ffplay --disable-ffprobe --disable-ffserver --cross-prefix=arm-angstrom-linux-gnueabi- --prefix=/usr --disable-x11grab --disable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --disable-libvpx --disable-optimizations --disable-stripping --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O0 -fno-omit-frame-pointer -ggdb3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mthumb-interwork -mno-thumb --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu' --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi --enable-hardcoded-tables --cpu=cortex-a8
avformat configuration: --enable-shared --enable-pthreads --disable-gpl --disable-postproc --disable-avfilter --disable-swscale --enable-neon --enable-pic --enable-debug=3 --enable-ffmpeg --enable-ffplay --disable-ffprobe --disable-ffserver --cross-prefix=arm-angstrom-linux-gnueabi- --prefix=/usr --disable-x11grab --disable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --disable-libvpx --disable-optimizations --disable-stripping --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O0 -fno-omit-frame-pointer -ggdb3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mthumb-interwork -mno-thumb --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu' --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi --enable-hardcoded-tables --cpu=cortex-a8
swresample configuration: --enable-shared --enable-pthreads --disable-gpl --enable-postproc --enable-avfilter --enable-swscale --enable-swresample --enable-neon --enable-pic --enable-debug=3 --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --cross-prefix=arm-angstrom-linux-gnueabi- --prefix=/usr --disable-x11grab --disable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --disable-libvpx --disable-optimizations --disable-stripping --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -O0 -fno-omit-frame-pointer -ggdb3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mthumb-interwork -mno-thumb --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu' --sysroot=/home/tang/Projects/OE/build/tmp/sysroots/armv7a-angstrom-linux-gnueabi --enable-hardcoded-tables --cpu=cortex-a8
libavutil 51. 65.100 / 51. 65.100
libavcodec 54. 40.100 / 54. 40.100
libavformat 54. 16.104 / 54. 16.104
libavdevice 54. 1.100 / 54. 1.100
libavfilter 3. 2.100 / 3. 2.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 15.100 / 0. 15.100
[flv @ 0x433d0] max_analyze_duration 5000000 reached at 25000000
Input #0, flv, from '20051210-w50s.flv':
Duration: 00:00:16.92, start: 0.000000, bitrate: 316 kb/s
Stream #0:0: Video: vp6f, yuv420p, 360x288, 266 kb/s, 0.04 fps, 0.04 tbr, 1k tbn, 1k tbc
Stream #0:1: Audio: mp3, 22050 Hz, stereo, s16, 40 kb/s
At least one output file must be specified
comment:7 Changed 10 months ago by cehoyos
Does it also hang with ffmpeg?
One possibility to test is:
$ ffmpeg -i 20051210-w50s.flv -f null -
If you cannot reproduce the hang, please recompile with --enable-cross-compile --cross-prefix=arm-angstrom-linux-gnueabi --target-os=linux (or whatever is the necessary minimum to compile an optimized neon binary).
comment:8 follow-up: ↓ 9 Changed 10 months ago by kaijun61
It doesn't hang with ffmpeg since ffmpeg may not decode frame. I found it hangs when the third packet of size of 1112 bytes enter the said function. When I step over the function, it hangs. Otherwise, if I step in and out, it doesn't.
Yes, the application is compiled with these options.
comment:9 in reply to: ↑ 8 Changed 10 months ago by cehoyos
Replying to kaijun61:
It doesn't hang with ffmpeg since ffmpeg may not decode frame.
In which situation does ffmpeg not decode a frame?
I found it hangs when the third packet of size of 1112 bytes enter the said function. When I step over the function, it hangs. Otherwise, if I step in and out, it doesn't.
Is this with ffmpeg_g ?
Yes, the application is compiled with these options.
comment:10 Changed 10 months ago by kaijun61
I use ffmpeg libavcodec, it hangs on the third video packet. You can try. no, I don't use ffmpeg_g. I work on console.
comment:11 Changed 9 months ago by michael
your output contains "WARNING: library configuration mismatch". Please retest with libs that match in their versions
Also full gdb output is needed, including registers and disassembly, if you can still reproduce it after fixing the libraries.
And if you say it hangs, try to find out not only one spot where execution happens but try to find out in which loop its trapped.
comment:12 Changed 9 months ago by kaijun61
I have pointed out where the problem is. Can you reproduce the issue?
comment:13 Changed 8 months ago by michael
tested on a panda board, no crash. If you can still reproduce this with latest ffmpeg then we need much more information (full disassembly and register contents of where it crashes), valgrind output may or may not be usefull too. Even better would be if you could look at the code yourself and see if you spot why it hangs.
thanks
comment:14 Changed 8 months ago by kaijun61
I tested again. It is same as before. It hangs at vp3_idct_start_neon in function ff_vp3_idct_add_neon when I debug it. In this ticket I have given details.
comment:15 follow-up: ↓ 16 Changed 8 months ago by cehoyos
Please provide a backtrace. Without a backtrace, it is impossible to fix the problem afaict.
comment:16 in reply to: ↑ 15 Changed 8 months ago by michael
Replying to cehoyos:
Please provide a backtrace. Without a backtrace, it is impossible to fix the problem afaict.
We need full disassembly and register contents of where it crashes. a backtrace is USELESS!
valgrind may be usefull
comment:17 Changed 8 months ago by kaijun61
As I said before, if I step into each assembly instruction, it doesn't crash, but if I step over assembly function, it crashes.
comment:18 Changed 8 months ago by michael
quoting http://ffmpeg.org/bugreports.html
When gdb encounters its problem, run the following commands and copy/paste the output into your bug report:
bt
disass $pc-32,$pc+32
info all-registers
you only provided the first, which is useless
comment:19 Changed 5 months ago by michael
- Summary changed from flv hangs on ff_vp3_idct_add_neon on ARM Cortex-A8 to flv hangs on ff_vp3_idct_add_neon on ARM Cortex-A8 with gstreamer
not reproduceable with ffmpeg on a beaglebord
Also theres far too much information missing about this bug
Whats needed? register dump & disassembly in addition to a matching backtrace.
And as this seems gstreamer specific the SAME gstreamer+ffmpeg testcase which crashes on ARM should be tested on x86
comment:20 Changed 4 days ago by cehoyos
- Keywords flv vp3 added; flv, cortext- A8 removed
- Status changed from new to closed
- Resolution set to needs_more_info
Please reopen this ticket if you can add the missing information.



