diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-09-13 20:13:32 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-09-13 20:13:32 +0000 |
commit | 84f449bd4b4553798c1210d8f4a9f9e59fb50c2c (patch) | |
tree | 358f0738389d5312c61016b0d461902939daa215 | |
parent | fe20ee421865cc8a7a98b2eaaa60fa288a0f527c (diff) | |
download | gst-plugins-bad-84f449bd4b4553798c1210d8f4a9f9e59fb50c2c.tar.gz gst-plugins-bad-84f449bd4b4553798c1210d8f4a9f9e59fb50c2c.tar.bz2 gst-plugins-bad-84f449bd4b4553798c1210d8f4a9f9e59fb50c2c.zip |
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).
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gst/qtdemux/qtdemux.c | 12 |
2 files changed, 14 insertions, 4 deletions
@@ -1,5 +1,11 @@ 2004-09-13 Ronald S. Bultje <rbultje@ronald.bitfreak.net> + * 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 <rbultje@ronald.bitfreak.net> + * gst/qtdemux/qtdemux.c: (qtdemux_audio_caps): Don't touch non-existing data (fixes crash on file in #140147). 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; |