GNOME Bugzilla – Bug 678074
Segfault playing MPEG PS video
Last modified: 2012-11-09 19:42:37 UTC
Code from 0.10 GIT: gstreamer 11c8ffb6fbd20081c49708cb41e0ec6e2ed09c27 -base 1f6056eafb6c37f4c78ed22b2796a1dcaeb51ee6 -good 50c85392cd0a8824b917790a12d92f237dbd55ce -bad acf4463f2b9bf7a7cdbac288e50dfb41626fc8b2 -ugly 09284b9862504f73924d88ac00b2c7d08dd7a001 -ffmpeg 9761a6501b518a554fc5e52de8e9acdc4f8ced9a Plus a patch to -ugly mpeg2dec to set its rank to NONE making -ffmpeg MPEG2 decoder used. Crash: : [1] root @ NTB 19122 # gdb gst-launch-0.10 GNU gdb (GDB) Fedora (7.3.50.20110722-13.fc16) Copyright (C) 2011 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 "x86_64-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/bin/gst-launch-0.10...Reading symbols from /usr/lib/debug/usr/bin/gst-launch-0.10.debug...done. done. (gdb) set args playbin2 uri=file:///data/data/media/Corporate\ SA/MAIN\ ZONE/CrossSpin.mpeg (gdb) r Starting program: /usr/bin/gst-launch-0.10 playbin2 uri=file:///data/data/media/Corporate\ SA/MAIN\ ZONE/CrossSpin.mpeg [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Setting pipeline to PAUSED ... [New Thread 0x7fffed784700 (LWP 28470)] Pipeline is PREROLLING ... [New Thread 0x7fffecf83700 (LWP 28471)] [New Thread 0x7fffe7127700 (LWP 28472)] [New Thread 0x7fffe6926700 (LWP 28473)] [New Thread 0x7fffe6125700 (LWP 28474)] [New Thread 0x7fffdbbe1700 (LWP 28475)] [New Thread 0x7fffdab38700 (LWP 28476)] [New Thread 0x7fffd392a700 (LWP 28477)] [New Thread 0x7fffcf128700 (LWP 28478)] [New Thread 0x7fffce927700 (LWP 28479)] [Thread 0x7fffcf128700 (LWP 28478) exited] [Thread 0x7fffce927700 (LWP 28479) exited] [Thread 0x7fffd392a700 (LWP 28477) exited] [New Thread 0x7fffd392a700 (LWP 28480)] 0:00:00.480827279 28467 0x7fffc4001a00 ERROR ffmpeg :0:: ac-tex damaged at 14 1 0:00:00.480926471 28467 0x7fffe800e960 ERROR ffmpeg :0:: Warning MVs not available [New Thread 0x7fffce927700 (LWP 28481)] 0:00:00.582521467 28467 0x7fffc4001a00 ERROR ffmpeg :0:: ac-tex damaged at 22 5 0:00:00.582595391 28467 0x7fffe800e960 ERROR ffmpeg :0:: Warning MVs not available Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstAudioSinkClock 0:00:00.625050860 28467 0x7fffc4001a00 ERROR ffmpeg :0:: ac-tex damaged at 22 3 0:00:00.625150011 28467 0x7fffe800e960 ERROR ffmpeg :0:: Warning MVs not available Redistribute latency... ** (gst-launch-0.10:28467): CRITICAL **: gst_video_codec_frame_unref: assertion `frame->ref_count > 0' failed ** (gst-launch-0.10:28467): CRITICAL **: gst_video_codec_frame_unref: assertion `frame->ref_count > 0' failed ** (gst-launch-0.10:28467): CRITICAL **: gst_video_codec_frame_unref: assertion `frame->ref_count > 0' failed ** (gst-launch-0.10:28467): CRITICAL **: gst_video_codec_frame_unref: assertion `frame->ref_count > 0' failed (gst-launch-0.10:28467): GStreamer-CRITICAL **: gst_caps_is_fixed: assertion `GST_IS_CAPS (caps)' failed 0:00:00.646462844 28467 0x7fffc4001a00 ERROR ffmpeg :0:: ac-tex damaged at 24 7 ** (gst-launch-0.10:28467): CRITICAL **: gst_video_codec_frame_unref: assertion `frame->ref_count > 0' failed ** (gst-launch-0.10:28467): CRITICAL **: gst_video_codec_frame_unref: assertion `frame->ref_count > 0' failed Program received signal SIGSEGV, Segmentation fault.
+ Trace 230368
Thread 140737169078016 (LWP 28471)
Another failure mode with a different file: (gdb) set args playbin2 uri=file:///data/data/media/Corporate\ SA/MAIN\ ZONE/640x480.mpg (gdb) r Starting program: /usr/bin/gst-launch-0.10 playbin2 uri=file:///data/data/media/Corporate\ SA/MAIN\ ZONE/640x480.mpg [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Setting pipeline to PAUSED ... [New Thread 0x7fffec29f700 (LWP 28855)] Pipeline is PREROLLING ... [New Thread 0x7fffeba9e700 (LWP 28856)] [New Thread 0x7fffeb29d700 (LWP 28857)] [New Thread 0x7fffe9b0d700 (LWP 28858)] [New Thread 0x7fffe8a64700 (LWP 28859)] 0:00:00.269101910 28854 0x7fffe0001800 ERROR ffmpeg :0:: ac-tex damaged at 25 16 0:00:00.269645015 28854 0x87af60 ERROR ffmpeg :0:: Warning MVs not available 0:00:00.273024835 28854 0x87af60 ERROR ffmpeg :0:: warning: first frame is no keyframe 0:00:00.273986512 28854 0x87af60 ERROR ffmpeg :0:: warning: first frame is no keyframe 0:00:00.274351785 28854 0x87af60 ERROR ffmpeg :0:: Warning MVs not available Redistribute latency... 0:00:00.279706161 28854 0x7fffd4001a00 ERROR ffmpeg :0:: ac-tex damaged at 12 2 0:00:00.279898058 28854 0x87af60 ERROR ffmpeg :0:: Warning MVs not available 0:00:00.301993694 28854 0x7fffd4001a00 ERROR ffmpeg :0:: ac-tex damaged at 35 8 Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock 0:00:00.305457896 28854 0x7fffd4001a00 ERROR ffmpeg :0:: ac-tex damaged at 34 0 0:00:00.314742531 28854 0x87af60 ERROR ffmpeg :0:: get_buffer() failed (-1 2 (nil)) Program received signal SIGSEGV, Segmentation fault.
+ Trace 230369
Thread 140737155561216 (LWP 28855)
First crash is in -base, second in -ffmpeg but maybe it is the same thing? Movie samples are at least 4Mb so I can't attach them here. I am happy to email them so just ask.
Looks like it could be the same as https://bugzilla.gnome.org/show_bug.cgi?id=677187.
Tvrtko Ursulin : could you send me the sample file please ?
Both those files works fine with current master and 0.10, both with mpeg2dec and {ff|av}dec_mpeg2video. Closing bug
There were special circumstances here btw: "Note that we are using ffmpeg's MPEG2 decoder (because it is multi-threaded) which is what crashes for at least 640x480.mpg and CrossSpin.mpeg. Not sure if you are interested in this setup." I haven't been able to reproduce this yet though (with 1.0.x), on a core duo with threads=2.