gst/qtdemux/qtdemux.c: Clip the outputed NEWSEGMENT stop time to the configured segme...
authorEdward Hervey <bilboed@bilboed.com>
Fri, 26 May 2006 13:16:54 +0000 (13:16 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Fri, 26 May 2006 13:16:54 +0000 (13:16 +0000)
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment):
Clip the outputed NEWSEGMENT stop time to the configured segment stop
time.

ChangeLog
gst/qtdemux/qtdemux.c

index 4db57d1..520ef5f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-05-26  Edward Hervey  <edward@fluendo.com>
+
+       * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment): 
+       Clip the outputed NEWSEGMENT stop time to the configured segment stop
+       time.
+
 2006-05-26  Wim Taymans  <wim@fluendo.com>
 
        * gst/qtdemux/qtdemux.c: (gst_qtdemux_do_seek):
index cec5793..2510a85 100644 (file)
@@ -1066,7 +1066,10 @@ gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream,
 
   /* calc media start/stop */
   start = segment->media_start + seg_time;
-  stop = segment->media_stop;
+  if (qtdemux->segment.stop == -1)
+    stop = segment->media_stop;
+  else
+    stop = MIN (segment->media_stop, qtdemux->segment.stop);
 
   GST_DEBUG_OBJECT (qtdemux, "newsegment %d from %" GST_TIME_FORMAT
       " to %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT, seg_idx,
@@ -3482,8 +3485,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
         samples[j].chunk = j;
         samples[j].offset = chunk_offset;
 
-        samples[j].size = (samples_per_chunk * stream->n_channels) /
-            stream->samples_per_frame * stream->bytes_per_frame;
+        if (stream->samples_per_frame * stream->bytes_per_frame) {
+          samples[j].size = (samples_per_chunk * stream->n_channels) /
+              stream->samples_per_frame * stream->bytes_per_frame;
+        }
 
         GST_INFO_OBJECT (qtdemux, "sample %d: timestamp %" GST_TIME_FORMAT
             ", size %u", j, GST_TIME_ARGS (timestamp), samples[j].size);