mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
gst/asfdemux/gstasfdemux.*: Subtract first timestamp from timestamps, so that stream starts from 0; makes live stream...
Original commit message from CVS: Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it> * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad), (gst_asf_demux_process_chunk): * gst/asfdemux/gstasfdemux.h: Subtract first timestamp from timestamps, so that stream starts from 0; makes live streams that don't start at 0 work again (fixes #317310, #336097).
This commit is contained in:
parent
4f7b8f0d3a
commit
08c4bd4168
3 changed files with 19 additions and 2 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2006-03-27 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
|
Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>
|
||||||
|
|
||||||
|
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
|
||||||
|
(gst_asf_demux_process_chunk):
|
||||||
|
* gst/asfdemux/gstasfdemux.h:
|
||||||
|
Subtract first timestamp from timestamps, so that
|
||||||
|
stream starts from 0; makes live streams that don't
|
||||||
|
start at 0 work again (fixes #317310, #336097).
|
||||||
|
|
||||||
2006-03-27 Tim-Philipp Müller <tim at centricular dot net>
|
2006-03-27 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
Patch by: Christian Kirbach
|
Patch by: Christian Kirbach
|
||||||
|
|
|
@ -828,6 +828,7 @@ gst_asf_demux_setup_pad (GstASFDemux * demux, GstPad * src_pad,
|
||||||
stream->frag_offset = 0;
|
stream->frag_offset = 0;
|
||||||
stream->sequence = 0;
|
stream->sequence = 0;
|
||||||
stream->delay = 0;
|
stream->delay = 0;
|
||||||
|
stream->first_pts = GST_CLOCK_TIME_NONE;
|
||||||
stream->last_pts = GST_CLOCK_TIME_NONE;
|
stream->last_pts = GST_CLOCK_TIME_NONE;
|
||||||
stream->fps_known = !is_video; /* bit hacky for audio */
|
stream->fps_known = !is_video; /* bit hacky for audio */
|
||||||
stream->is_video = is_video;
|
stream->is_video = is_video;
|
||||||
|
@ -1812,7 +1813,10 @@ gst_asf_demux_process_chunk (GstASFDemux * demux,
|
||||||
if (segment_info->frag_offset == 0) {
|
if (segment_info->frag_offset == 0) {
|
||||||
/* new packet */
|
/* new packet */
|
||||||
stream->sequence = segment_info->sequence;
|
stream->sequence = segment_info->sequence;
|
||||||
demux->pts = segment_info->frag_timestamp - demux->preroll;
|
if (!GST_CLOCK_TIME_IS_VALID (stream->first_pts))
|
||||||
|
stream->first_pts = segment_info->frag_timestamp - demux->preroll;
|
||||||
|
demux->pts =
|
||||||
|
segment_info->frag_timestamp - demux->preroll - stream->first_pts;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (stream->is_video) {
|
if (stream->is_video) {
|
||||||
|
@ -1871,7 +1875,8 @@ gst_asf_demux_process_chunk (GstASFDemux * demux,
|
||||||
#endif
|
#endif
|
||||||
stream->frag_offset = 0;
|
stream->frag_offset = 0;
|
||||||
}
|
}
|
||||||
demux->pts = segment_info->frag_timestamp - demux->preroll;
|
demux->pts =
|
||||||
|
segment_info->frag_timestamp - demux->preroll - stream->first_pts;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (stream->is_video) {
|
if (stream->is_video) {
|
||||||
|
|
|
@ -47,6 +47,7 @@ typedef struct
|
||||||
guint32 frag_offset;
|
guint32 frag_offset;
|
||||||
guint32 sequence;
|
guint32 sequence;
|
||||||
guint64 delay;
|
guint64 delay;
|
||||||
|
guint64 first_pts;
|
||||||
guint64 last_pts;
|
guint64 last_pts;
|
||||||
GstBuffer *payload;
|
GstBuffer *payload;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue