diff --git a/ChangeLog b/ChangeLog index 587c84fd3a..1363b6c059 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-04-10 Stefan Kost + + * gst/gstpad.c: + Do not abort on out of memory for pad_alloc_buffer. + 2008-04-10 Stefan Kost * libs/gst/check/gstcheck.c: diff --git a/gst/gstpad.c b/gst/gstpad.c index 9458321910..c423252c3c 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -2699,11 +2699,15 @@ fallback: /* fallback case, allocate a buffer of our own, add pad caps. */ GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "fallback buffer alloc"); - *buf = gst_buffer_new_and_alloc (size); - GST_BUFFER_OFFSET (*buf) = offset; - gst_buffer_set_caps (*buf, caps); - - return GST_FLOW_OK; + if ((*buf = gst_buffer_try_new_and_alloc (size))) { + GST_BUFFER_OFFSET (*buf) = offset; + gst_buffer_set_caps (*buf, caps); + return GST_FLOW_OK; + } else { + GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, + "out of memory allocating %d bytes", size); + return GST_FLOW_ERROR; + } } }