Commit 43e94eea authored by Sebastian Dröge's avatar Sebastian Dröge
Browse files

videodecoder: Use GSlice to allocate the timestamp tracking structures

parent 3327d13f
......@@ -1432,13 +1432,19 @@ struct _Timestamp
GstClockTime duration;
};
static void
timestamp_free (Timestamp * ts)
{
g_slice_free (Timestamp, ts);
}
static void
gst_video_decoder_add_timestamp (GstVideoDecoder * decoder, GstBuffer * buffer)
{
GstVideoDecoderPrivate *priv = decoder->priv;
Timestamp *ts;
ts = g_malloc (sizeof (Timestamp));
ts = g_slice_new (Timestamp);
GST_LOG_OBJECT (decoder,
"adding PTS %" GST_TIME_FORMAT " DTS %" GST_TIME_FORMAT
......@@ -1479,7 +1485,7 @@ gst_video_decoder_get_timestamp_at_offset (GstVideoDecoder *
*pts = ts->pts;
*dts = ts->dts;
*duration = ts->duration;
g_free (ts);
timestamp_free (ts);
g = g->next;
decoder->priv->timestamps = g_list_remove (decoder->priv->timestamps, ts);
} else {
......@@ -1549,7 +1555,7 @@ gst_video_decoder_reset (GstVideoDecoder * decoder, gboolean full)
priv->frame_offset = 0;
gst_adapter_clear (priv->input_adapter);
gst_adapter_clear (priv->output_adapter);
g_list_free_full (priv->timestamps, (GDestroyNotify) g_free);
g_list_free_full (priv->timestamps, (GDestroyNotify) timestamp_free);
priv->timestamps = NULL;
if (priv->current_frame) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment