jpegdec: free temporary buffer when changing state to NULL
Free temporary allocations in the state change function and not only when the object is finalised.
This commit is contained in:
parent
26e7fe27d7
commit
7af7d93b27
@ -148,19 +148,12 @@ static void
|
|||||||
gst_jpeg_dec_finalize (GObject * object)
|
gst_jpeg_dec_finalize (GObject * object)
|
||||||
{
|
{
|
||||||
GstJpegDec *dec = GST_JPEG_DEC (object);
|
GstJpegDec *dec = GST_JPEG_DEC (object);
|
||||||
gint i;
|
|
||||||
|
|
||||||
jpeg_destroy_decompress (&dec->cinfo);
|
jpeg_destroy_decompress (&dec->cinfo);
|
||||||
|
|
||||||
if (dec->tempbuf)
|
if (dec->tempbuf)
|
||||||
gst_buffer_unref (dec->tempbuf);
|
gst_buffer_unref (dec->tempbuf);
|
||||||
|
|
||||||
for (i = 0; i < 16; i++) {
|
|
||||||
g_free (dec->idr_y[i]);
|
|
||||||
g_free (dec->idr_u[i]);
|
|
||||||
g_free (dec->idr_v[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -682,6 +675,23 @@ hresamplecpy1 (guint8 * dest, const guint8 * src, guint len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gst_jpeg_dec_free_buffers (GstJpegDec * dec)
|
||||||
|
{
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
for (i = 0; i < 16; i++) {
|
||||||
|
g_free (dec->idr_y[i]);
|
||||||
|
g_free (dec->idr_u[i]);
|
||||||
|
g_free (dec->idr_v[i]);
|
||||||
|
dec->idr_y[i] = NULL;
|
||||||
|
dec->idr_u[i] = NULL;
|
||||||
|
dec->idr_v[i] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
dec->idr_width_allocated = 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline gboolean
|
static inline gboolean
|
||||||
gst_jpeg_dec_ensure_buffers (GstJpegDec * dec, guint maxrowbytes)
|
gst_jpeg_dec_ensure_buffers (GstJpegDec * dec, guint maxrowbytes)
|
||||||
{
|
{
|
||||||
@ -1430,6 +1440,7 @@ gst_jpeg_dec_change_state (GstElement * element, GstStateChange transition)
|
|||||||
gst_buffer_unref (dec->tempbuf);
|
gst_buffer_unref (dec->tempbuf);
|
||||||
dec->tempbuf = NULL;
|
dec->tempbuf = NULL;
|
||||||
}
|
}
|
||||||
|
gst_jpeg_dec_free_buffers (dec);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user