mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-02 05:28:48 +00:00
jpegenc: Clean up reset/start/stop handling
This commit is contained in:
parent
4944183061
commit
ef4a21253b
1 changed files with 20 additions and 19 deletions
|
@ -70,7 +70,6 @@ enum
|
||||||
PROP_IDCT_METHOD
|
PROP_IDCT_METHOD
|
||||||
};
|
};
|
||||||
|
|
||||||
static void gst_jpegenc_reset (GstJpegEnc * enc);
|
|
||||||
static void gst_jpegenc_finalize (GObject * object);
|
static void gst_jpegenc_finalize (GObject * object);
|
||||||
|
|
||||||
static void gst_jpegenc_resync (GstJpegEnc * jpegenc);
|
static void gst_jpegenc_resync (GstJpegEnc * jpegenc);
|
||||||
|
@ -81,6 +80,7 @@ static void gst_jpegenc_get_property (GObject * object, guint prop_id,
|
||||||
|
|
||||||
static gboolean gst_jpegenc_start (GstVideoEncoder * benc);
|
static gboolean gst_jpegenc_start (GstVideoEncoder * benc);
|
||||||
static gboolean gst_jpegenc_stop (GstVideoEncoder * benc);
|
static gboolean gst_jpegenc_stop (GstVideoEncoder * benc);
|
||||||
|
static gboolean gst_jpegenc_reset (GstVideoEncoder * benc, gboolean hard);
|
||||||
static gboolean gst_jpegenc_set_format (GstVideoEncoder * encoder,
|
static gboolean gst_jpegenc_set_format (GstVideoEncoder * encoder,
|
||||||
GstVideoCodecState * state);
|
GstVideoCodecState * state);
|
||||||
static GstFlowReturn gst_jpegenc_handle_frame (GstVideoEncoder * encoder,
|
static GstFlowReturn gst_jpegenc_handle_frame (GstVideoEncoder * encoder,
|
||||||
|
@ -161,6 +161,7 @@ gst_jpegenc_class_init (GstJpegEncClass * klass)
|
||||||
|
|
||||||
venc_class->start = gst_jpegenc_start;
|
venc_class->start = gst_jpegenc_start;
|
||||||
venc_class->stop = gst_jpegenc_stop;
|
venc_class->stop = gst_jpegenc_stop;
|
||||||
|
venc_class->reset = gst_jpegenc_reset;
|
||||||
venc_class->set_format = gst_jpegenc_set_format;
|
venc_class->set_format = gst_jpegenc_set_format;
|
||||||
venc_class->handle_frame = gst_jpegenc_handle_frame;
|
venc_class->handle_frame = gst_jpegenc_handle_frame;
|
||||||
venc_class->propose_allocation = gst_jpegenc_propose_allocation;
|
venc_class->propose_allocation = gst_jpegenc_propose_allocation;
|
||||||
|
@ -300,28 +301,16 @@ gst_jpegenc_init (GstJpegEnc * jpegenc)
|
||||||
jpegenc->quality = JPEG_DEFAULT_QUALITY;
|
jpegenc->quality = JPEG_DEFAULT_QUALITY;
|
||||||
jpegenc->smoothing = JPEG_DEFAULT_SMOOTHING;
|
jpegenc->smoothing = JPEG_DEFAULT_SMOOTHING;
|
||||||
jpegenc->idct_method = JPEG_DEFAULT_IDCT_METHOD;
|
jpegenc->idct_method = JPEG_DEFAULT_IDCT_METHOD;
|
||||||
|
|
||||||
gst_jpegenc_reset (jpegenc);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static gboolean
|
||||||
gst_jpegenc_reset (GstJpegEnc * enc)
|
gst_jpegenc_reset (GstVideoEncoder * benc, gboolean hard)
|
||||||
{
|
{
|
||||||
gint i, j;
|
GstJpegEnc *enc = (GstJpegEnc *) benc;
|
||||||
|
|
||||||
g_free (enc->line[0]);
|
|
||||||
g_free (enc->line[1]);
|
|
||||||
g_free (enc->line[2]);
|
|
||||||
enc->line[0] = NULL;
|
|
||||||
enc->line[1] = NULL;
|
|
||||||
enc->line[2] = NULL;
|
|
||||||
for (i = 0; i < 3; i++) {
|
|
||||||
for (j = 0; j < 4 * DCTSIZE; j++) {
|
|
||||||
g_free (enc->row[i][j]);
|
|
||||||
enc->row[i][j] = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
enc->sof_marker = -1;
|
enc->sof_marker = -1;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -633,8 +622,20 @@ static gboolean
|
||||||
gst_jpegenc_stop (GstVideoEncoder * benc)
|
gst_jpegenc_stop (GstVideoEncoder * benc)
|
||||||
{
|
{
|
||||||
GstJpegEnc *enc = (GstJpegEnc *) benc;
|
GstJpegEnc *enc = (GstJpegEnc *) benc;
|
||||||
|
gint i, j;
|
||||||
|
|
||||||
gst_jpegenc_reset (enc);
|
g_free (enc->line[0]);
|
||||||
|
g_free (enc->line[1]);
|
||||||
|
g_free (enc->line[2]);
|
||||||
|
enc->line[0] = NULL;
|
||||||
|
enc->line[1] = NULL;
|
||||||
|
enc->line[2] = NULL;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
for (j = 0; j < 4 * DCTSIZE; j++) {
|
||||||
|
g_free (enc->row[i][j]);
|
||||||
|
enc->row[i][j] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue