mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-20 08:41:07 +00:00
codecs: h264decoder: Make get_short_ref_by_pic_num() transfer none
We don't use the extra reference, so let's just avoid the extra ref/unref. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238>
This commit is contained in:
parent
298e22e217
commit
a20147f255
2 changed files with 2 additions and 4 deletions
|
@ -1256,7 +1256,6 @@ gst_h264_decoder_handle_memory_management_opt (GstH264Decoder * self,
|
||||||
to_mark = gst_h264_dpb_get_short_ref_by_pic_num (priv->dpb, pic_num_x);
|
to_mark = gst_h264_dpb_get_short_ref_by_pic_num (priv->dpb, pic_num_x);
|
||||||
if (to_mark) {
|
if (to_mark) {
|
||||||
to_mark->ref = FALSE;
|
to_mark->ref = FALSE;
|
||||||
gst_h264_picture_unref (to_mark);
|
|
||||||
} else {
|
} else {
|
||||||
GST_WARNING_OBJECT (self, "Invalid short term ref pic num to unmark");
|
GST_WARNING_OBJECT (self, "Invalid short term ref pic num to unmark");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -1286,7 +1285,6 @@ gst_h264_decoder_handle_memory_management_opt (GstH264Decoder * self,
|
||||||
if (to_mark) {
|
if (to_mark) {
|
||||||
to_mark->long_term = TRUE;
|
to_mark->long_term = TRUE;
|
||||||
to_mark->long_term_frame_idx = ref_pic_marking->long_term_frame_idx;
|
to_mark->long_term_frame_idx = ref_pic_marking->long_term_frame_idx;
|
||||||
gst_h264_picture_unref (to_mark);
|
|
||||||
} else {
|
} else {
|
||||||
GST_WARNING_OBJECT (self,
|
GST_WARNING_OBJECT (self,
|
||||||
"Invalid short term ref pic num to mark as long ref");
|
"Invalid short term ref pic num to mark as long ref");
|
||||||
|
|
|
@ -316,7 +316,7 @@ gst_h264_dpb_mark_all_non_ref (GstH264Dpb * dpb)
|
||||||
*
|
*
|
||||||
* Find a short term reference picture which has matching picture number
|
* Find a short term reference picture which has matching picture number
|
||||||
*
|
*
|
||||||
* Returns: (nullable) (transfer full): a #GstH264Picture
|
* Returns: (nullable) (transfer none): a #GstH264Picture
|
||||||
*/
|
*/
|
||||||
GstH264Picture *
|
GstH264Picture *
|
||||||
gst_h264_dpb_get_short_ref_by_pic_num (GstH264Dpb * dpb, gint pic_num)
|
gst_h264_dpb_get_short_ref_by_pic_num (GstH264Dpb * dpb, gint pic_num)
|
||||||
|
@ -330,7 +330,7 @@ gst_h264_dpb_get_short_ref_by_pic_num (GstH264Dpb * dpb, gint pic_num)
|
||||||
g_array_index (dpb->pic_list, GstH264Picture *, i);
|
g_array_index (dpb->pic_list, GstH264Picture *, i);
|
||||||
|
|
||||||
if (picture->ref && !picture->long_term && picture->pic_num == pic_num)
|
if (picture->ref && !picture->long_term && picture->pic_num == pic_num)
|
||||||
return gst_h264_picture_ref (picture);
|
return picture;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_WARNING ("No short term reference picture for %d", pic_num);
|
GST_WARNING ("No short term reference picture for %d", pic_num);
|
||||||
|
|
Loading…
Reference in a new issue