GNOME Bugzilla – Bug 138824
[ffenc_mpeg4] sad16_y2_mmx2 crash
Last modified: 2009-08-15 18:40:50 UTC
I am using Gstreamer 0.8.0 release along with gst-plugins-0.8.0 and gst-ffmpeg-0.8.0 I am trying to read from a DVD -> transcode video to MPEG4 -> do mpeg4 decode -> display, the pipeline segfaults. gst-launch dvdnavsrc location=/dev/dvd title=1 chapter=1 angle=1 ! mpegdemux video_00 ! { queue ! mpeg2dec ! { queue ! ffenc_mpeg4 ! ffdec_mpeg4 ! sdlvideosink } } <snip> dvdnavsrc (0x81c4a70): event: DVDNAV_SPU_STREAM_CHANGE physical_wide: 128 physical_letterbox: 128 physical_pan_scan: 128 logical: 879692544 dvdnavsrc (0x81c4a70): event: DVDNAV_AUDIO_STREAM_CHANGE physical: 0 logical: 781650944 [mpeg4 @ 0x40734648]removing common factors from framerate Segmentation fault (core dumped)
Can you provide a backtrace?
[root@dsplin04 gst]# gst-launch dvdnavsrc location=/dev/dvd title=1 chapter=1 angle=1 ! mpegdemux video_00 ! { queue ! mpeg2dec ! { queue ! ffenc_mpeg4 ! ffdec_mpeg4 ! sdlvideosink } } WARNING: erroneous pipeline: no element "video_00" Trying to run anyway. RUNNING pipeline ... libdvdnav: Using dvdnav version 0.1.9 from http://dvd.sf.net libdvdread: Using libdvdcss version 1.2.8 for DVD access libdvdnav: DVD Title: ICE_AGE_SCN libdvdnav: DVD Serial Number: 2d0c41d9 libdvdnav: DVD Title (Alternative): libdvdnav: Unable to find map file '/home/nikunjd/.dvdnav/ICE_AGE_SCN.map' libdvdnav: DVD disk reports itself with Region mask 0x00400000. Regions: 1 2 3 4 5 6 8 +XXX dvdnavsrc (0x8063e78): event: DVDNAV_HIGHLIGHT display: show palette: 08064108 coords (1, 0) - (1, 0) pts: 3221220084 button: 1 pre seek dvdnav_get_next_block error: -XXX dvdnav: seeking to 1/1/1 There are 1 titles on this DVD. There are 1 chapters in this title. There are 1 angles in this title. dvdnavsrc (0x8063e78): event: DVDNAV_HOP_CHANNEL libdvdread: Attempting to retrieve all CSS keys libdvdread: This can take a _long_ time, please be patient libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x0000014f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0000480f libdvdread: Elapsed time 0 libdvdread: Found 1 VTS's libdvdread: Elapsed time 0 dvdnavsrc (0x8063e78): event: DVDNAV_VTS_CHANGE old_vtsN: -1 old_domain: UNKNOWN new_vtsN: 1 new_domain: DVD_READ_MENU_VOBS dvdnavsrc (0x8063e78): event: DVDNAV_SPU_CLUT_CHANGE dvdnavsrc (0x8063e78): event: DVDNAV_SPU_STREAM_CHANGE physical_wide: 128 physical_letterbox: 128 physical_pan_scan: 128 logical: 1441663232 dvdnavsrc (0x8063e78): event: DVDNAV_AUDIO_STREAM_CHANGE physical: 0 logical: 1225394944 [mpeg4 @ 0x4071a648]removing common factors from framerate Segmentation fault (core dumped) [root@dsplin04 gst]# gdb gst-launch core.5233 GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) Copyright 2003 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 "i386-redhat-linux-gnu"... warning: core file may not match specified executable file. Core was generated by `/opt/gst-new/bin/gst-launch-0.8 dvdnavsrc location=/dev/dvd title=1 chapter=1 a'. Program terminated with signal 11, Segmentation fault.
+ Trace 45933
Hope this helps. BTW, how do I get the function names in place of these addresses which will be difficult to decrypt at your end. Is this a build time option? I did compile gstreamer with -g option. Am I missing something here.
gst-plugins needs to be compiled with -g as well, and you should run inside gdb, not open the core file in gdb, so: $ gdb gst-launch-0.8 [..] (gdb) r dvdnavsrc location=/dev/dvd title=1 chapter=1 angle=1 ! mpegdemux video_00 ! { queue ! mpeg2dec ! { queue ! ffenc_mpeg4 ! ffdec_mpeg4 ! sdlvideosink } } [..] (gdb) bt
[root@dsplin04 root]# gdb gst-launch-0.8 GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) Copyright 2003 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 "i386-redhat-linux-gnu"... (gdb) r dvdnavsrc location=/dev/dvd title=1 angle=1 chapter=1 ! mpegdemux video_00 ! { queue ! mpeg2dec ! { queue ! ffenc_mpeg4 ! ffdec_mpeg4 ! sdlvideosink } } Starting program: /opt/gst-new/bin/gst-launch-0.8 dvdnavsrc location=/dev/dvd title=1 angle=1 chapter=1 ! mpegdemux video_00 ! { queue ! mpeg2dec ! { queue ! ffenc_mpeg4 ! ffdec_mpeg4 ! sdlvideosink } } [New Thread 1076989248 (LWP 3694)] WARNING: erroneous pipeline: no element "video_00" Trying to run anyway. RUNNING pipeline ... [New Thread 1085377728 (LWP 3695)] [New Thread 1087474752 (LWP 3696)] libdvdnav: Using dvdnav version 0.1.9 from http://dvd.sf.net libdvdread: Using libdvdcss version 1.2.8 for DVD access libdvdnav: DVD Title: ICE_AGE_SCN libdvdnav: DVD Serial Number: 2d0c41d9 libdvdnav: DVD Title (Alternative): libdvdnav: Unable to find map file '/home/nikunjd/.dvdnav/ICE_AGE_SCN.map' libdvdnav: DVD disk reports itself with Region mask 0x00400000. Regions: 1 2 3 4 5 6 8 +XXX dvdnavsrc (0x8063e78): event: DVDNAV_HIGHLIGHT display: show palette: 08064108 coords (1, 0) - (1, 0) pts: 3221218356 button: 1 pre seek dvdnav_get_next_block error: -XXX dvdnav: seeking to 1/1/1 There are 1 titles on this DVD. There are 1 chapters in this title. There are 1 angles in this title. dvdnavsrc (0x8063e78): event: DVDNAV_HOP_CHANNEL libdvdread: Attempting to retrieve all CSS keys libdvdread: This can take a _long_ time, please be patient libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x0000014f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0000480f libdvdread: Elapsed time 0 libdvdread: Found 1 VTS's libdvdread: Elapsed time 0 dvdnavsrc (0x8063e78): event: DVDNAV_VTS_CHANGE old_vtsN: -1 old_domain: UNKNOWN new_vtsN: 1 new_domain: DVD_READ_MENU_VOBS dvdnavsrc (0x8063e78): event: DVDNAV_SPU_CLUT_CHANGE dvdnavsrc (0x8063e78): event: DVDNAV_SPU_STREAM_CHANGE physical_wide: 128 physical_letterbox: 128 physical_pan_scan: 128 logical: 1441663232 dvdnavsrc (0x8063e78): event: DVDNAV_AUDIO_STREAM_CHANGE physical: 0 logical: 1225394944 [mpeg4 @ 0x4071a648]removing common factors from framerate Program received signal SIGSEGV, Segmentation fault.
+ Trace 45972
Thread 1087474752 (LWP 3696)
The program is running. Exit anyway? (y or n) y [root@dsplin04 root]#
Maybe this is due to broken MMX asm. Is it disabled in latest cvs?
No, because we updated snapshots. Can you reproduce this with current ffmpeg CVS? If not, it might be a ffmpeg setup issue...
Yes I am still seeing the problem even with the ffmpeg from CVS. I couldn't use cvs(port is blocked) to download but used the tarballs generated from the following link http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-ffmpeg/. I hope this is fine. I was able to build ffmpeg successfully.
Hi, I recently fixed several bugs in the ffmpeg encoders. I've successfully captured from a live TV source using ffenc_mpeg4 (to AVI). Can you please confirm that current CVS (or a recent nightly tarball) works correctly?
Nothing heard back, so assuming fixed. Please re-open if still a problem.
I (and others) have the same issue. see #162905. I'll take a look at this problem next w-end.