After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 553755 - [mpegpsdemux] FP exception when playing tv2-1_25.mpg
[mpegpsdemux] FP exception when playing tv2-1_25.mpg
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 0.10.9
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-09-25 09:53 UTC by Sebastian Dröge (slomo)
Modified: 2008-10-08 10:21 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2008-09-25 09:53:41 UTC
Hi,
when playing tv2-1_25.mpg with mpegpsdemux one gets a FP exception. This might be caused by the stream starting at a timestamp > 0. Old mpegdemux works without problems...

Program received signal SIGFPE, Arithmetic exception.

Thread 3067325328 (LWP 5870)

  • #0 __udivdi3
    from /home/slomo/projects/gstreamer/head/gst-plugins-bad/gst/mpegdemux/.libs/libgstmpegdemux.so
  • #1 gst_flups_demux_chain
    at gstmpegdemux.c line 1140
  • #2 gst_pad_chain_unchecked
    at gstpad.c line 3877
  • #3 gst_pad_push
    at gstpad.c line 4045
  • #4 gst_base_src_loop
    at gstbasesrc.c line 2187
  • #5 gst_task_func
    at gsttask.c line 192
  • #6 g_thread_pool_thread_proxy
    at /tmp/buildd/glib2.0-2.18.1/glib/gthreadpool.c line 265
  • #7 g_thread_create_proxy
    at /tmp/buildd/glib2.0-2.18.1/glib/gthread.c line 635
  • #8 start_thread
    from /lib/i686/cmov/libpthread.so.0
  • #9 clone
    from /lib/i686/cmov/libc.so.6


http://samples.mplayerhq.hu/MPEG-VOB/interlaced/tv2-1_25.mpg
Comment 1 Sebastian Dröge (slomo) 2008-09-25 09:54:23 UTC
Code in question is:

adjust = (bss * CLOCK_FREQ) / old_mux_rate;

So most probably a division by zero ;)
Comment 2 Jan Schmidt 2008-09-25 11:12:35 UTC
How old is "old mpegdemux"? afair there used to be a sanity check that the mux_rate was != 0 before doing the division
Comment 3 Sebastian Dröge (slomo) 2008-09-25 14:18:11 UTC
(In reply to comment #2)
> How old is "old mpegdemux"? afair there used to be a sanity check that the
> mux_rate was != 0 before doing the division

With "old mpegdemux" I meant the one from -ugly. There was a bug with this file too but it was fixed before last release.
Comment 4 Sebastian Dröge (slomo) 2008-10-08 10:21:07 UTC
2008-10-08  Sebastian Dröge  <sebastian.droege@collabora.co.uk>

	* gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data),
	(gst_flups_demux_parse_pack_start):
	Prevent a division by zero if last mux rate was zero.

	If we're going to send a NEWSEGMENT event but the segment start
	and the current buffer timestamp differ by more than a second we
	will start the NEWSEGMENT at the buffer timestamp.

	This fixes playback of the tv2-1_25.mpg file, which has 0 as first SCR
	but the first PTS are around 1 hour and 40 minutes.

	Fixes bug #553755.