[gst-cvs] gst-plugins-good: v4l2src: don't deref NULL
Stefan Kost
ensonic at kemper.freedesktop.org
Mon Jan 25 04:16:25 PST 2010
Module: gst-plugins-good
Branch: master
Commit: 3d9d34bd60faeb940b36d992a47168fc895036ba
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=3d9d34bd60faeb940b36d992a47168fc895036ba
Author: Stefan Kost <ensonic at users.sf.net>
Date: Mon Jan 25 14:16:22 2010 +0200
v4l2src: don't deref NULL
Error out when the pool gets shutdown.
---
ext/jpeg/gstjpegenc.c | 6 ++++++
sys/v4l2/v4l2src_calls.c | 7 +++++++
tests/check/Makefile.am | 1 +
3 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index 73e674c..12b03d2 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -517,6 +517,12 @@ gst_jpegenc_chain (GstPad * pad, GstBuffer * buf)
jpegenc->jdest.next_output_byte = GST_BUFFER_DATA (jpegenc->output_buffer);
jpegenc->jdest.free_in_buffer = GST_BUFFER_SIZE (jpegenc->output_buffer);
+ /* FIXME: shouldn't we also set
+ * - jpegenc->cinfo.max_{v,h}_samp_factor
+ * - jpegenc->cinfo.comp_info[0,1,2].{v,h}_samp_factor
+ * accordingly?
+ */
+
/* prepare for raw input */
#if JPEG_LIB_VERSION >= 70
jpegenc->cinfo.do_fancy_downsampling = FALSE;
diff --git a/sys/v4l2/v4l2src_calls.c b/sys/v4l2/v4l2src_calls.c
index 73de302..c07748a 100644
--- a/sys/v4l2/v4l2src_calls.c
+++ b/sys/v4l2/v4l2src_calls.c
@@ -105,6 +105,8 @@ gst_v4l2src_grab_frame (GstV4l2Src * v4l2src, GstBuffer ** buf)
v4l2object = v4l2src->v4l2object;
pool = v4l2src->pool;
+ if (!pool)
+ goto no_buffer_pool;
GST_DEBUG_OBJECT (v4l2src, "grab frame");
@@ -174,6 +176,11 @@ gst_v4l2src_grab_frame (GstV4l2Src * v4l2src, GstBuffer ** buf)
return GST_FLOW_OK;
/* ERRORS */
+no_buffer_pool:
+ {
+ GST_DEBUG ("no buffer pool");
+ return GST_FLOW_WRONG_STATE;
+ }
select_error:
{
GST_ELEMENT_ERROR (pool->v4l2elem, RESOURCE, READ, (NULL),
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 1d1b703..169bdf3 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -82,6 +82,7 @@ endif
check_PROGRAMS = \
generic/states \
+ generic/capsrenegotiation \
$(check_annodex) \
elements/alphacolor \
elements/aspectratiocrop \
More information about the Gstreamer-commits
mailing list