From 84f449bd4b4553798c1210d8f4a9f9e59fb50c2c Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Mon, 13 Sep 2004 20:13:32 +0000 Subject: gst/qtdemux/qtdemux.c: Don't crash by dividing by zero (see sample movie in #126922). Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), (qtdemux_parse_trak): Don't crash by dividing by zero (see sample movie in #126922). --- ChangeLog | 6 ++++++ gst/qtdemux/qtdemux.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index c495c715..1e54c3bd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-09-13 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), + (qtdemux_parse_trak): + Don't crash by dividing by zero (see sample movie in #126922). + 2004-09-13 Ronald S. Bultje * gst/qtdemux/qtdemux.c: (qtdemux_audio_caps): diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index e4a54f07..1abaf0f2 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -850,7 +850,8 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux, QtDemuxStream * stream) g_print ("setting caps %s\n", gst_caps_to_string (stream->caps)); gst_pad_set_explicit_caps (stream->pad, stream->caps); - GST_DEBUG ("adding pad %p to qtdemux %p", stream->pad, qtdemux); + GST_DEBUG ("adding pad %s %p to qtdemux %p", + gst_pad_get_name (stream->pad), stream->pad, qtdemux); gst_element_add_pad (GST_ELEMENT (qtdemux), stream->pad); } @@ -2117,9 +2118,12 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) } samples[j].chunk = j; samples[j].offset = chunk_offset; - samples[j].size = - samples_per_chunk * stream->bytes_per_frame / - stream->samples_per_packet / stream->compression; + if (stream->samples_per_packet * stream->compression != 0) + samples[j].size = + samples_per_chunk * stream->bytes_per_frame / + stream->samples_per_packet / stream->compression; + else + samples[j].size = 0; samples[j].duration = samples_per_chunk * GST_SECOND / (stream->rate / 2); samples[j].timestamp = timestamp; -- cgit v1.2.1