summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-01-22 17:18:58 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-01-22 17:19:29 +0200
commitf585a66bd11fb1f66740a53f4a63cc3ffd5e7853 (patch)
treebe687945be4236a1839131942cf48ba122cce985 /sys
parent3ea431c5b5425806b7139025b6f233999563594d (diff)
downloadgstreamer-plugins-bad-f585a66bd11fb1f66740a53f4a63cc3ffd5e7853.tar.gz
amcvideodec: Only free GstAmcBuffer if it's not NULL
And also free it on GL errors.
Diffstat (limited to 'sys')
-rw-r--r--sys/androidmedia/gstamcvideodec.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/androidmedia/gstamcvideodec.c b/sys/androidmedia/gstamcvideodec.c
index 90be00269..3e0f5ef42 100644
--- a/sys/androidmedia/gstamcvideodec.c
+++ b/sys/androidmedia/gstamcvideodec.c
@@ -1445,8 +1445,10 @@ retry:
flow_ret = gst_video_decoder_drop_frame (GST_VIDEO_DECODER (self), frame);
}
- gst_amc_buffer_free (buf);
- buf = NULL;
+ if (buf) {
+ gst_amc_buffer_free (buf);
+ buf = NULL;
+ }
if (release_buffer) {
if (!gst_amc_codec_release_output_buffer (self->codec, idx, FALSE, &err)) {
@@ -1608,6 +1610,10 @@ invalid_buffer:
}
gl_output_error:
{
+ if (buf) {
+ gst_amc_buffer_free (buf);
+ buf = NULL;
+ }
gst_pad_push_event (GST_VIDEO_DECODER_SRC_PAD (self), gst_event_new_eos ());
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
self->downstream_flow_ret = GST_FLOW_NOT_NEGOTIATED;