summaryrefslogtreecommitdiff
path: root/sys/androidmedia/gstamcaudiodec.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/androidmedia/gstamcaudiodec.c')
-rw-r--r--sys/androidmedia/gstamcaudiodec.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/sys/androidmedia/gstamcaudiodec.c b/sys/androidmedia/gstamcaudiodec.c
index fbd6d0969..9a34c375c 100644
--- a/sys/androidmedia/gstamcaudiodec.c
+++ b/sys/androidmedia/gstamcaudiodec.c
@@ -1128,8 +1128,10 @@ gst_amc_audio_dec_handle_frame (GstAudioDecoder * decoder, GstBuffer * inbuf)
/* Copy the buffer content in chunks of size as requested
* by the port */
buf = gst_amc_codec_get_input_buffer (self->codec, idx, &err);
- if (!buf)
+ if (err)
goto failed_to_get_input_buffer;
+ else if (!buf)
+ goto got_null_input_buffer;
memset (&buffer_info, 0, sizeof (buffer_info));
buffer_info.offset = 0;
@@ -1200,6 +1202,16 @@ failed_to_get_input_buffer:
gst_buffer_unref (inbuf);
return GST_FLOW_ERROR;
}
+got_null_input_buffer:
+ {
+ GST_ELEMENT_ERROR (self, LIBRARY, SETTINGS, (NULL),
+ ("Got no input buffer"));
+ if (minfo.data)
+ gst_buffer_unmap (inbuf, &minfo);
+ if (inbuf)
+ gst_buffer_unref (inbuf);
+ return GST_FLOW_ERROR;
+ }
dequeue_error:
{
GST_ELEMENT_ERROR_FROM_ERROR (self, err);