diff options
Diffstat (limited to 'sys/androidmedia/gstamcaudiodec.c')
-rw-r--r-- | sys/androidmedia/gstamcaudiodec.c | 14 |
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); |