diff options
author | Thibault Saunier <tsaunier@gnome.org> | 2016-01-19 22:49:20 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-01-20 10:12:50 +0200 |
commit | fa7388c5c2692d1ca48fd5d82a28e0004bef7ceb (patch) | |
tree | f8862d362279b8f2678cf88d7af9c4bf1b1cc573 /ext | |
parent | f2ed4091309889533fb8f04e54216afed5ded68e (diff) | |
download | gstreamer-plugins-good-fa7388c5c2692d1ca48fd5d82a28e0004bef7ceb.tar.gz |
vpxenc: Unref frame on ERROR
All code paths for handle_frame() must somehow take ownership of the frame, be
it by actually unreffing, forwarding the frame elsewhere or storing it for
later.
http://bugzilla.gnome.org/show_bug.cgi?id=760666
Diffstat (limited to 'ext')
-rw-r--r-- | ext/vpx/gstvp8enc.c | 1 | ||||
-rw-r--r-- | ext/vpx/gstvp9enc.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/ext/vpx/gstvp8enc.c b/ext/vpx/gstvp8enc.c index 0a7cf4302..170ae535d 100644 --- a/ext/vpx/gstvp8enc.c +++ b/ext/vpx/gstvp8enc.c @@ -2060,6 +2060,7 @@ gst_vp8_enc_handle_frame (GstVideoEncoder * video_encoder, GST_ELEMENT_ERROR (encoder, LIBRARY, ENCODE, ("Failed to encode frame"), ("%s", gst_vpx_error_name (status))); gst_video_codec_frame_set_user_data (frame, NULL, NULL); + gst_video_codec_frame_unref (frame); return GST_FLOW_ERROR; } gst_video_codec_frame_unref (frame); diff --git a/ext/vpx/gstvp9enc.c b/ext/vpx/gstvp9enc.c index d8ae81ca1..93739c147 100644 --- a/ext/vpx/gstvp9enc.c +++ b/ext/vpx/gstvp9enc.c @@ -1988,6 +1988,7 @@ gst_vp9_enc_handle_frame (GstVideoEncoder * video_encoder, if (status != 0) { GST_ELEMENT_ERROR (encoder, LIBRARY, ENCODE, ("Failed to encode frame"), ("%s", gst_vpx_error_name (status))); + gst_video_codec_frame_unref (frame); return GST_FLOW_ERROR; } gst_video_codec_frame_unref (frame); |