mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
codecs: h264decoder: fix memory leak
gst_h264_dbp_get_picture_all() returns a full transfer of the GArray, which needs be unrefed. But it is not unrefed in gst_h264_decoder_find_first_field_picture() leaking it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1827>
This commit is contained in:
parent
1749dc66c5
commit
1a5862dd39
1 changed files with 3 additions and 1 deletions
|
@ -902,6 +902,7 @@ gst_h264_decoder_find_first_field_picture (GstH264Decoder * self,
|
||||||
|
|
||||||
pictures = gst_h264_dpb_get_pictures_all (priv->dpb);
|
pictures = gst_h264_dpb_get_pictures_all (priv->dpb);
|
||||||
prev_picture = g_array_index (pictures, GstH264Picture *, pictures->len - 1);
|
prev_picture = g_array_index (pictures, GstH264Picture *, pictures->len - 1);
|
||||||
|
g_array_unref (pictures); /* prev_picture should be hold */
|
||||||
|
|
||||||
/* This is not a field picture */
|
/* This is not a field picture */
|
||||||
if (!slice_hdr->field_pic_flag) {
|
if (!slice_hdr->field_pic_flag) {
|
||||||
|
@ -934,7 +935,7 @@ gst_h264_decoder_find_first_field_picture (GstH264Decoder * self,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
*first_field = prev_picture;
|
*first_field = gst_h264_picture_ref (prev_picture);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -983,6 +984,7 @@ gst_h264_decoder_parse_slice (GstH264Decoder * self, GstH264NalUnit * nalu)
|
||||||
|
|
||||||
if (first_field) {
|
if (first_field) {
|
||||||
picture = gst_h264_decoder_new_field_picture (self, first_field);
|
picture = gst_h264_decoder_new_field_picture (self, first_field);
|
||||||
|
gst_h264_picture_unref (first_field);
|
||||||
|
|
||||||
if (!picture) {
|
if (!picture) {
|
||||||
GST_ERROR_OBJECT (self, "Couldn't duplicate the first field picture");
|
GST_ERROR_OBJECT (self, "Couldn't duplicate the first field picture");
|
||||||
|
|
Loading…
Reference in a new issue