mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-21 15:56:42 +00:00
jpegenc: error out instead of crashing if no caps have been set
Don't crash if we receive a buffer without caps. Fixes #572413.
This commit is contained in:
parent
7c56695160
commit
1a2bd6c617
1 changed files with 13 additions and 0 deletions
|
@ -427,6 +427,9 @@ gst_jpegenc_chain (GstPad * pad, GstBuffer * buf)
|
|||
|
||||
jpegenc = GST_JPEGENC (GST_OBJECT_PARENT (pad));
|
||||
|
||||
if (G_UNLIKELY (jpegenc->width <= 0 || jpegenc->height <= 0))
|
||||
goto not_negotiated;
|
||||
|
||||
data = GST_BUFFER_DATA (buf);
|
||||
size = GST_BUFFER_SIZE (buf);
|
||||
|
||||
|
@ -495,6 +498,14 @@ done:
|
|||
gst_buffer_unref (buf);
|
||||
|
||||
return ret;
|
||||
|
||||
/* ERRORS */
|
||||
not_negotiated:
|
||||
{
|
||||
GST_WARNING_OBJECT (jpegenc, "no input format set (no caps on buffer)");
|
||||
ret = GST_FLOW_NOT_NEGOTIATED;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -572,6 +583,8 @@ gst_jpegenc_change_state (GstElement * element, GstStateChange transition)
|
|||
filter->line[0] = NULL;
|
||||
filter->line[1] = NULL;
|
||||
filter->line[2] = NULL;
|
||||
filter->width = -1;
|
||||
filter->height = -1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue