v4l2videodec: ensure pool exists before orphaning it
In commit e2ff87732d0b ("v4l2videodec: support orphaning") support for orphaning the capture buffer pool was added when the format is renegotiated. However, the commit forgot to check that a pool existed before doing this. This is needed because it's possible for the format to be renegotiated before a capture pool is allocated, which would result in trying to orphan a NULL pool and lead to a NULL pointer dereference. Fix this by checking a pool exists first. If the pool doesn't exist, there are no buffers to be reclaimed, so skip the allocation query in that case.
This commit is contained in:
parent
ae80fa4731
commit
51b83d5ca1
@ -254,7 +254,8 @@ gst_v4l2_video_dec_set_format (GstVideoDecoder * decoder,
|
||||
* the complexity and should not have much impact in performance since the
|
||||
* following allocation query will happen on a drained pipeline and won't
|
||||
* block. */
|
||||
if (!gst_v4l2_buffer_pool_orphan (&self->v4l2capture->pool)) {
|
||||
if (self->v4l2capture->pool &&
|
||||
!gst_v4l2_buffer_pool_orphan (&self->v4l2capture->pool)) {
|
||||
GstCaps *caps = gst_pad_get_current_caps (decoder->srcpad);
|
||||
if (caps) {
|
||||
GstQuery *query = gst_query_new_allocation (caps, FALSE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user