summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2009-05-02 11:12:51 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2009-05-05 22:41:33 +0200
commit44ebe58377085695edd69608728e6c3342c66b2a (patch)
tree7b477dc8b0000d5e1075840f04ad803f640c0607
parentb6d4fb9e4f4e562a7de1691b37cded2859b86235 (diff)
asfdemux: handle FIXME; normalize preroll
-rw-r--r--gst/asfdemux/asfpacket.c4
-rw-r--r--gst/asfdemux/gstasfdemux.c6
-rw-r--r--gst/asfdemux/gstasfdemux.h2
3 files changed, 6 insertions, 6 deletions
diff --git a/gst/asfdemux/asfpacket.c b/gst/asfdemux/asfpacket.c
index 5266f075..8b86653a 100644
--- a/gst/asfdemux/asfpacket.c
+++ b/gst/asfdemux/asfpacket.c
@@ -309,7 +309,7 @@ gst_asf_demux_parse_payload (GstASFDemux * demux, AsfPacket * packet,
if (payload.rep_data_len >= 8) {
payload.mo_size = GST_READ_UINT32_LE (payload.rep_data);
payload.ts = GST_READ_UINT32_LE (payload.rep_data + 4) * GST_MSECOND;
- payload.ts -= demux->preroll * GST_MSECOND;
+ payload.ts -= demux->preroll;
asf_payload_parse_replicated_data_extensions (stream, &payload);
GST_LOG_OBJECT (demux, "media object size : %u", payload.mo_size);
@@ -364,7 +364,7 @@ gst_asf_demux_parse_payload (GstASFDemux * demux, AsfPacket * packet,
*p_data += payload_len;
*p_size -= payload_len;
- ts = (payload.mo_offset - demux->preroll) * GST_MSECOND;
+ ts = payload.mo_offset * GST_MSECOND - demux->preroll;
ts_delta = payload.rep_data[0] * GST_MSECOND;
for (num = 0; payload_len > 0; ++num) {
diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c
index d953110d..1c213e9a 100644
--- a/gst/asfdemux/gstasfdemux.c
+++ b/gst/asfdemux/gstasfdemux.c
@@ -1019,7 +1019,7 @@ all_streams_prerolled (GstASFDemux * demux)
GstClockTime preroll_time;
guint i, num_no_data = 0;
- preroll_time = demux->preroll * GST_MSECOND;
+ preroll_time = demux->preroll;
/* returns TRUE as long as there isn't a stream which (a) has data queued
* and (b) the timestamp of last piece of data queued is < demux->preroll
@@ -2459,7 +2459,7 @@ gst_asf_demux_process_file (GstASFDemux * demux, guint8 * data, guint64 size)
else
demux->play_time = 0;
- demux->preroll = preroll; /* FIXME: make GstClockTime */
+ demux->preroll = preroll * GST_MSECOND;
if (demux->play_time == 0)
demux->seekable = FALSE;
@@ -2467,7 +2467,7 @@ gst_asf_demux_process_file (GstASFDemux * demux, guint8 * data, guint64 size)
GST_DEBUG_OBJECT (demux, "play_time %" GST_TIME_FORMAT,
GST_TIME_ARGS (demux->play_time));
GST_DEBUG_OBJECT (demux, "preroll %" GST_TIME_FORMAT,
- GST_TIME_ARGS (demux->preroll * GST_MSECOND));
+ GST_TIME_ARGS (demux->preroll));
if (demux->play_time > 0) {
gst_segment_set_duration (&demux->segment, GST_FORMAT_TIME,
diff --git a/gst/asfdemux/gstasfdemux.h b/gst/asfdemux/gstasfdemux.h
index 353820ba..96ebac1f 100644
--- a/gst/asfdemux/gstasfdemux.h
+++ b/gst/asfdemux/gstasfdemux.h
@@ -160,7 +160,7 @@ struct _GstASFDemux {
guint32 timestamp; /* in milliseconds */
guint64 play_time;
- guint64 preroll; /* FIXME: make into GstClockTime */
+ guint64 preroll;
guint64 pts;
gboolean seekable;