mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 16:26:39 +00:00
gst/matroska/matroska-demux.*: Don't set the segment duration to the duration from the Matroska header as this value ...
Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_reset), (gst_matroska_demux_handle_src_query), (gst_matroska_demux_parse_info), (gst_matroska_demux_loop_stream_parse_id): * gst/matroska/matroska-demux.h: Don't set the segment duration to the duration from the Matroska header as this value could be wrong and is just informational.
This commit is contained in:
parent
5b68f28c94
commit
35bcb8d8b0
3 changed files with 14 additions and 3 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2008-07-02 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||||
|
|
||||||
|
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
|
||||||
|
(gst_matroska_demux_handle_src_query),
|
||||||
|
(gst_matroska_demux_parse_info),
|
||||||
|
(gst_matroska_demux_loop_stream_parse_id):
|
||||||
|
* gst/matroska/matroska-demux.h:
|
||||||
|
Don't set the segment duration to the duration from the Matroska
|
||||||
|
header as this value could be wrong and is just informational.
|
||||||
|
|
||||||
2008-07-02 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
2008-07-02 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||||
|
|
||||||
* gst/matroska/matroska-demux.c:
|
* gst/matroska/matroska-demux.c:
|
||||||
|
|
|
@ -331,6 +331,7 @@ gst_matroska_demux_reset (GstElement * element)
|
||||||
demux->tags_parsed = NULL;
|
demux->tags_parsed = NULL;
|
||||||
|
|
||||||
gst_segment_init (&demux->segment, GST_FORMAT_TIME);
|
gst_segment_init (&demux->segment, GST_FORMAT_TIME);
|
||||||
|
demux->duration = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
|
@ -1537,7 +1538,7 @@ gst_matroska_demux_handle_src_query (GstPad * pad, GstQuery * query)
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_OBJECT_LOCK (demux);
|
GST_OBJECT_LOCK (demux);
|
||||||
gst_query_set_duration (query, GST_FORMAT_TIME, demux->segment.duration);
|
gst_query_set_duration (query, GST_FORMAT_TIME, demux->duration);
|
||||||
GST_OBJECT_UNLOCK (demux);
|
GST_OBJECT_UNLOCK (demux);
|
||||||
|
|
||||||
res = TRUE;
|
res = TRUE;
|
||||||
|
@ -2331,7 +2332,7 @@ gst_matroska_demux_parse_info (GstMatroskaDemux * demux)
|
||||||
dur = gst_gdouble_to_guint64 (num *
|
dur = gst_gdouble_to_guint64 (num *
|
||||||
gst_guint64_to_gdouble (demux->time_scale));
|
gst_guint64_to_gdouble (demux->time_scale));
|
||||||
if (GST_CLOCK_TIME_IS_VALID (dur) && dur <= G_MAXINT64)
|
if (GST_CLOCK_TIME_IS_VALID (dur) && dur <= G_MAXINT64)
|
||||||
demux->segment.duration = dur;
|
demux->duration = dur;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4511,7 +4512,6 @@ gst_matroska_demux_loop_stream_parse_id (GstMatroskaDemux * demux,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
demux->state = GST_MATROSKA_DEMUX_STATE_DATA;
|
demux->state = GST_MATROSKA_DEMUX_STATE_DATA;
|
||||||
/* FIXME: different streams might have different lengths! */
|
|
||||||
/* send initial discont */
|
/* send initial discont */
|
||||||
gst_matroska_demux_send_event (demux,
|
gst_matroska_demux_send_event (demux,
|
||||||
gst_event_new_new_segment (FALSE, 1.0,
|
gst_event_new_new_segment (FALSE, 1.0,
|
||||||
|
|
|
@ -96,6 +96,7 @@ typedef struct _GstMatroskaDemux {
|
||||||
/* keeping track of playback position */
|
/* keeping track of playback position */
|
||||||
GstSegment segment;
|
GstSegment segment;
|
||||||
gboolean segment_running;
|
gboolean segment_running;
|
||||||
|
gint64 duration;
|
||||||
} GstMatroskaDemux;
|
} GstMatroskaDemux;
|
||||||
|
|
||||||
typedef struct _GstMatroskaDemuxClass {
|
typedef struct _GstMatroskaDemuxClass {
|
||||||
|
|
Loading…
Reference in a new issue