gst/matroska/matroska-mux.*: Keep track of first and last timestamps for each incomin...
authorWouter Cloetens <wouter@mind.be>
Tue, 8 Jan 2008 19:57:23 +0000 (19:57 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Tue, 8 Jan 2008 19:57:23 +0000 (19:57 +0000)
commit0a3ae38bf0c99f3bed14f3579ba41049afd8ce70
tree94c6baae7caced7be8e171555eea510a8e341212
parentb76819bbd28ffd2ba208d0a2fc55cbbeb928f503
gst/matroska/matroska-mux.*: Keep track of first and last timestamps for each incoming stream, so we can calculate th...

Original commit message from CVS:
Based on patch by: Wouter Cloetens  <wouter at mind be>
* gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_setcaps),
(gst_matroska_mux_request_new_pad), (gst_matroska_mux_release_pad),
(gst_matroska_mux_finish), (gst_matroska_mux_collected):
* gst/matroska/matroska-mux.h:
Keep track of first and last timestamps for each incoming stream,
so we can calculate the total duration for live sources and other
input where we can't query the duration from the start or where
there's no constant framerate from which we can deduce the
duration; also use calculated/observed duration if it is bigger
than the previously queried duration. Furthermore, use
gst_pad_query_peer_duration() and take into account that it may
return TRUE but still a duration of CLOCK_TIME_NONE, which easily
screws up comparisons when using unsigned integers. Fixes #504081.
ChangeLog
gst/matroska/matroska-mux.c
gst/matroska/matroska-mux.h