Is the code in gst_video_encoder_release_frame correct?
Bruce Tsai
wagamama.tsai at gmail.com
Thu May 4 01:20:57 UTC 2017
In gst_video_encoder_chain(), the “frame” is “ref” before appending to frame list.
So ref-count is increased in the list.
gst_video_codec_frame_ref (frame);
priv->frames = g_list_append (priv->frames, frame);
--
Yi-Lung (Bruce) Tsai
wagamama.tsai at gmail.com
> On May 4, 2017, at 3:27 AM, Martin Maurer <meinemailingliste2 at online.de> wrote:
>
> Hi,
>
> the following is an extract from gst-plugins-base-1.0-1.11.91\gst-libs\gst\video\gstvideoencoder.c
>
> static void
> gst_video_encoder_release_frame (GstVideoEncoder * enc,
> GstVideoCodecFrame * frame)
> {
> GList *link;
>
> /* unref once from the list */
> link = g_list_find (enc->priv->frames, frame);
> if (link) {
> gst_video_codec_frame_unref (frame);
> enc->priv->frames = g_list_delete_link (enc->priv->frames, link);
> }
> /* unref because this function takes ownership */
> gst_video_codec_frame_unref (frame);
> }
>
> Could there be an error, because the "unref" command is executed twice. And both time with same parameter "frame".
> Is there perhaps a missing return or else statement needed?
> Must "frame" in first unref command be "link", or link maybe ok, because link is the same as frame, in case it is found?
>
> Best regards,
>
> Martin
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20170504/466934ef/attachment.html>
More information about the gstreamer-devel
mailing list