GNOME Bugzilla – Bug 361584
[mpeg2dec] framerate=0/0 on caps leads to crash
Last modified: 2007-07-29 16:50:16 UTC
Version: 2.16.2 What were you doing when the application crashed? Opening an old .MPG file. Distribution: Ubuntu 6.10 (edgy) Gnome Release: 2.16.1 2006-10-02 (Ubuntu) BugBuddy Version: 2.16.0 Memory status: size: 118501376 vsize: 0 resident: 118501376 share: 0 rss: 26210304 rss_rlim: 0 CPU usage: start_time: 1160609344 rtime: 0 utime: 92 stime: 0 cutime:84 cstime: 0 timeout: 8 it_real_value: 0 frequency: 4 Backtrace was generated from '/usr/bin/totem' (no debugging symbols found) Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1226794272 (LWP 31313)] [New Thread -1313297504 (LWP 31322)] [New Thread -1304904800 (LWP 31321)] [New Thread -1284695136 (LWP 31318)] [New Thread -1276302432 (LWP 31317)] (no debugging symbols found) 0xffffe410 in __kernel_vsyscall ()
+ Trace 75907
Thread 2 (Thread -1313297504 (LWP 31322))
Hi, thanks for the bug report. This is quite an odd stack trace. Do you still have the .mpg file that triggered this or can you still reproduce this with another .mpg file of yours?
Created attachment 75814 [details] Example of file that causes Totem to crash This happens 100% of the time with certain .mpg files. I'm attaching one. This is a brief intro clip from an old TV show. Please let me know if I can help in any other way!
Thanks! Looks like an mpeg2dec problem: (totem:2114): GStreamer-CRITICAL **: gst_value_set_fraction: assertion `denominator != 0' failed GStreamer-ERROR **: file gstvalue.c: line 3709 (gst_value_compare_fraction): should not be reached (gdb) bt
+ Trace 81801
(gdb) call gst_caps_to_string (caps) $1 = (gchar *) 0x80c5600 "video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/0"
The relevant part from the debug output of a gst-launch run with a mpeg file with 12 fps: 0:00:01.546620000 25221 0x8123d88 DEBUG mpeg2dec gstmpeg2dec.c:645:handle_sequence:<mpeg2dec0> sequence flags: 165, frame period: 2250000 (0.0833333), frame rate: 0/0 The frame_period 2250000 is not contained in the list of predefined frame_periods and so the find-the-framerate code in handle_sequence: /* find framerate */ for (i = 0; i < 9; i++) { if (info->sequence->frame_period == frame_periods[i]) { mpeg2dec->fps_n = fpss[i][0]; mpeg2dec->fps_d = fpss[i][1]; } } doesn't find any framerate.
*** Bug 370306 has been marked as a duplicate of this bug. ***
Created attachment 76266 [details] [review] Proposed patch
Created attachment 76269 [details] [review] Simplified
Created attachment 76633 [details] [review] Simply use 27000000 for fps_n and frame_period for fps_d
Patch by: Jan Arne Petersen <jpetersen at jpetersen dot org> * ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence), (handle_slice): Simplify the framerate code and support more framerates. Fixes #361584.
*** Bug 386235 has been marked as a duplicate of this bug. ***
*** Bug 390720 has been marked as a duplicate of this bug. ***
*** Bug 399161 has been marked as a duplicate of this bug. ***
*** Bug 406114 has been marked as a duplicate of this bug. ***
*** Bug 412740 has been marked as a duplicate of this bug. ***
*** Bug 461505 has been marked as a duplicate of this bug. ***