<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Nicolas,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I've been working with Matthew on this project so I can expand a bit on the problem he's facing. We are using a custom GstContext with our pipeline, which is allocated and set by the application in response to the GST_MESSAGE_NEED_CONTEXT. At some point this
 context can be marked as invalid, which can be achieved with the existing API by setting a new context with some fields in the underlying GstStructure set to null. We would then like the elements in the pipeline to request a new context from the application
 by sending another GST_MESSAGE_NEED_CONTEXT, but this message is intercepted by GstBin, which simply sets the original context (<a href="https://github.com/GStreamer/gstreamer/blob/master/gst/gstbin.c#L3996" id="LPlnk">https://github.com/GStreamer/gstreamer/blob/master/gst/gstbin.c#L3996</a>).</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
It's not possible to pass a null pointer to gst_element_set_context() to "null out" an existing context, which would force GstBin to request a new one from the application.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
It looks like we would need a new API, gst_element_remove_context(), in order to achieve what we want, unless we have missed something?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Best regards</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Tom</div>
<div class="_Entity _EType_OWALinkPreview _EId_OWALinkPreview _EReadonly_1">
<div id="LPBorder_GTaHR0cHM6Ly9naXRodWIuY29tL0dTdHJlYW1lci9nc3RyZWFtZXIvYmxvYi9tYXN0ZXIvZ3N0L2dzdGJpbi5jI0wzOTk2" class="LPBorder864112" style="width: 100%; margin-top: 16px; margin-bottom: 16px; position: relative; max-width: 800px; min-width: 424px;">
<table id="LPContainer864112" role="presentation" style="padding: 12px 36px 12px 12px; width: 100%; border-width: 1px; border-style: solid; border-color: rgb(200, 200, 200); border-radius: 2px;">
<tbody>
<tr valign="top" style="border-spacing: 0px;">
<td>
<div id="LPImageContainer864112" style="position: relative; margin-right: 12px; height: 160px; overflow: hidden;">
<a target="_blank" id="LPImageAnchor864112" href="https://github.com/GStreamer/gstreamer/blob/master/gst/gstbin.c#L3996"><img id="LPThumbnailImageId864112" alt="" height="160" style="display: block;" width="160" src="https://avatars.githubusercontent.com/u/14967102?s=400&v=4"></a></div>
</td>
<td style="width: 100%;">
<div id="LPTitle864112" style="font-size: 21px; font-weight: 300; margin-right: 8px; font-family: wf_segoe-ui_light, "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; margin-bottom: 12px;">
<a target="_blank" id="LPUrlAnchor864112" href="https://github.com/GStreamer/gstreamer/blob/master/gst/gstbin.c#L3996" style="text-decoration: none; color: var(--themePrimary);">gstreamer/gstbin.c at master · GStreamer/gstreamer · GitHub</a></div>
<div id="LPDescription864112" style="font-size: 14px; max-height: 100px; color: rgb(102, 102, 102); font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; margin-bottom: 12px; margin-right: 8px; overflow: hidden;">
GStreamer open-source multimedia framework core library - GStreamer/gstreamer</div>
<div id="LPMetadata864112" style="font-size: 14px; font-weight: 400; color: rgb(166, 166, 166); font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif;">
github.com</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<br>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> gstreamer-devel <gstreamer-devel-bounces@lists.freedesktop.org> on behalf of Nicolas Dufresne <nicolas@ndufresne.ca><br>
<b>Sent:</b> 06 April 2021 14:57<br>
<b>To:</b> Discussion of the development of and with GStreamer <gstreamer-devel@lists.freedesktop.org><br>
<b>Subject:</b> Re: Remove Context from Elements</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">[External email]<br>
<br>
<br>
Le mardi 06 avril 2021 à 08:43 +0100, Matthew Walker a écrit :<br>
> Hi all,<br>
><br>
> I am working on an application which creates and utilises gstreamer pipelines.<br>
> One of the requirements is that the application must be able to erase the STC<br>
> context from the pipeline when stopping playback.<br>
><br>
> Currently I am using a function which resets the STC context on a given<br>
> element in conjunction with gst_iterator_foreach but I was wondering if there<br>
> was a better way to do this. Is there a gstreamer function which can remove<br>
> the STC context type from the context list of every element in a pipeline?<br>
<br>
All GstContext stored should be release when setting the pipeline to NULL state.<br>
If not, this is a bug.<br>
<br>
><br>
> Thanks for your help,<br>
> Matthew<br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> gstreamer-devel@lists.freedesktop.org<br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
gstreamer-devel@lists.freedesktop.org<br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
[External email. Treat hyperlinks and attachments with caution]<br>
<br>
</div>
</span></font></div>
This transmission contains information that may be confidential and contain personal views which are not necessarily those of YouView TV Ltd. YouView TV Ltd (Co No:7308805) is a limited liability company registered in England and Wales with its registered address
 at YouView TV Ltd, 3rd Floor, 10 Lower Thames Street, London, EC3R 6YT. For details see our web site at http://www.youview.com
</body>
</html>