gboolean * is_multibyte);
static gchar *get_encoding_and_convert (const gchar * text, guint length);
static GstClockTime calculate_skew (MpegTSPacketizer2 * packetizer,
- guint32 pcrtime, GstClockTime time);
+ guint64 pcrtime, GstClockTime time);
static void mpegts_packetizer_reset_skew (MpegTSPacketizer2 * packetizer);
#define CONTINUITY_UNSET 255
if (afcflags & MPEGTS_AFC_PCR_FLAG) {
packet->pcr = mpegts_packetizer_compute_pcr (data);
if (packetizer->calculate_skew)
- packet->pcr = calculate_skew (packetizer, packet->pcr,
+ GST_BUFFER_TIMESTAMP (packet->buffer) =
+ calculate_skew (packetizer, packet->pcr,
GST_BUFFER_TIMESTAMP (packet->buffer));
*data += 6;
}
packetizer->offset += packetizer->packet_size;
GST_MEMDUMP ("buffer", GST_BUFFER_DATA (packet->buffer), 16);
GST_MEMDUMP ("data_start", packet->data_start, 16);
+ GST_BUFFER_TIMESTAMP (packet->buffer) =
+ gst_adapter_prev_timestamp (packetizer->adapter, NULL);
/* Check sync byte */
if (G_UNLIKELY (packet->data_start[0] != 0x47)) {
* Returns: @time adjusted with the clock skew.
*/
static GstClockTime
-calculate_skew (MpegTSPacketizer2 * packetizer, guint32 pcrtime,
+calculate_skew (MpegTSPacketizer2 * packetizer, guint64 pcrtime,
GstClockTime time)
{
guint64 send_diff, recv_diff;
packetizer->base_time = -1;
}
- GST_DEBUG ("gstpcr %" GST_TIME_FORMAT ", base %"
+ GST_DEBUG ("gstpcr %" GST_TIME_FORMAT ", buftime %" GST_TIME_FORMAT ", base %"
GST_TIME_FORMAT ", send_diff %" GST_TIME_FORMAT,
- GST_TIME_ARGS (gstpcrtime), GST_TIME_ARGS (packetizer->base_pcrtime),
- GST_TIME_ARGS (send_diff));
+ GST_TIME_ARGS (gstpcrtime), GST_TIME_ARGS (time),
+ GST_TIME_ARGS (packetizer->base_pcrtime), GST_TIME_ARGS (send_diff));
/* we don't have an arrival timestamp so we can't do skew detection. we
* should still apply a timestamp based on RTP timestamp and base_time */
}
} else {
/* We simply use the pcrtime without applying any skew compensation */
- out_time = pcrtime;
+ out_time = time;
}
packetizer->prev_out_time = out_time;